<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>ESLint Blog</title>
  <subtitle>feed description</subtitle>
  <link href="https://eslint.org/feed.xml" rel="self"/>
  <link href="https://eslint.org/"/>
  <updated>2025-01-10T00:00:00Z</updated>
  <id>https://eslint.org/</id>
  <author>
    <name>ESLint</name>
    <email></email>
  </author>
  
  <entry>
    <title>ESLint v9.18.0 released</title>
    <link href="https://eslint.org/blog/2025/01/eslint-v9.18.0-released/"/>
    <updated>2025-01-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2025/01/eslint-v9.18.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;stable-typescript-configuration-file-support&quot; tabindex=&quot;-1&quot;&gt;Stable TypeScript configuration file support&lt;/h3&gt;
&lt;p&gt;In August of the previous year, ESLint launched support for TypeScript configuration files as an experimental feature.
In order to use a TypeScript configuration file like &lt;code&gt;eslint.config.ts&lt;/code&gt;, users had to specify the &lt;code&gt;unstable_ts_config&lt;/code&gt; flag in the command line, e.g.&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;npx eslint &lt;span class=&quot;token parameter variable&quot;&gt;--flag&lt;/span&gt; unstable_ts_config&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Following an experimental period of several months, during which there were no specific complaints and only minor adjustments, we have made the decision to officially implement support for TypeScript configuration files as a stable feature.
Starting with ESLint v9.18.0, TypeScript configuration files with extensions &lt;code&gt;.ts&lt;/code&gt;, &lt;code&gt;.mts&lt;/code&gt; and &lt;code&gt;.cts&lt;/code&gt; can be used like regular JavaScript configuration files.
If you are upgrading from a previous version of ESLint, be sure to remove the &lt;code&gt;unstable_ts_config&lt;/code&gt; flag from the command.&lt;/p&gt;
&lt;p&gt;Note that in order to use a TypeScript configuration file in Node.js, you still need to have &lt;a href=&quot;https://www.npmjs.com/package/jiti&quot;&gt;jiti&lt;/a&gt; installed in version 2.0 or higher.
For Deno and Bun, no additional dependency is necessary.
See the documentation about &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files#typescript-configuration-files&quot;&gt;TypeScript Configuration Files&lt;/a&gt; for more information about this feature.&lt;/p&gt;
&lt;h3 id=&quot;no-shadow-restricted-names-checks-imports-and-class-names&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;no-shadow-restricted-names&lt;/code&gt; checks imports and class names&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-shadow-restricted-names&quot;&gt;&lt;code&gt;no-shadow-restricted-names&lt;/code&gt;&lt;/a&gt; rule will now check for restricted names also in import declarations and in class names, for example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;foo&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;NaN&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;https://eslint.org/play/#eyJ0ZXh0IjoiLyplc2xpbnQgbm8tc2hhZG93LXJlc3RyaWN0ZWQtbmFtZXM6IFwiZXJyb3JcIiovXG5cbmltcG9ydCB1bmRlZmluZWQgZnJvbSBcImZvb1wiO1xuXG5jbGFzcyBOYU4ge30iLCJvcHRpb25zIjp7InJ1bGVzIjp7fSwibGFuZ3VhZ2VPcHRpb25zIjp7InBhcnNlck9wdGlvbnMiOnsiZWNtYUZlYXR1cmVzIjp7fX19fX0=&quot;&gt;&lt;strong&gt;Playground Link&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This rule was added in ESLint v0.1.4 to report on variables and functions with names that could be confusing to developers like &lt;code&gt;NaN&lt;/code&gt; or &lt;code&gt;undefined&lt;/code&gt;.
As JavaScript evolved, new syntactic constructs were introduced that could accept the same problematic names.
These newer cases are now detected and reported by the rule.&lt;/p&gt;
&lt;h3 id=&quot;allowed-method-names-in-no-config-problems&quot; tabindex=&quot;-1&quot;&gt;Allowed method names in &lt;code&gt;no-config&lt;/code&gt; problems&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-console&quot;&gt;&lt;code&gt;no-console-rule&lt;/code&gt;&lt;/a&gt; has been updated to indicate the name of methods that are explicitly configured as allowed when reporting a problem.
This can help developers to find an acceptable alternative to problem reported by this rule.&lt;/p&gt;
&lt;p&gt;Consider the following case where &lt;code&gt;no-console&lt;/code&gt; is configured to allow only the &lt;code&gt;warn&lt;/code&gt; and &lt;code&gt;error&lt;/code&gt; methods.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* eslint no-console: [&quot;error&quot;, { allow: [&quot;warn&quot;, &quot;error&quot;] }] */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Some text.&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Previously, the rule would report a problem with the generic message “Unexpected console statement.”
In ESLint v9.18.0, the message reads “Unexpected console statement. Only these console methods are allowed: warn, error.”&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://eslint.org/play/#eyJ0ZXh0IjoiLyogZXNsaW50IG5vLWNvbnNvbGU6IFtcImVycm9yXCIsIHsgYWxsb3c6IFtcIndhcm5cIiwgXCJlcnJvclwiXSB9XSAqL1xuXG5jb25zb2xlLmxvZyhcIlNvbWUgdGV4dC5cIik7Iiwib3B0aW9ucyI6eyJydWxlcyI6e30sImxhbmd1YWdlT3B0aW9ucyI6eyJzb3VyY2VUeXBlIjoibW9kdWxlIiwicGFyc2VyT3B0aW9ucyI6eyJlY21hRmVhdHVyZXMiOnt9fX19fQ==&quot;&gt;&lt;strong&gt;Playground Link&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e84e6e269c4aefc84952e17a1f967697b02b7ad2&quot;&gt;&lt;code&gt;e84e6e2&lt;/code&gt;&lt;/a&gt; feat: Report allowed methods for &lt;a href=&quot;https://eslint.org/docs/rules/no-console&quot;&gt;&lt;code&gt;no-console&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19306&quot;&gt;#19306&lt;/a&gt;) (Anna Bocharova)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8efc2d0c92dab6099f34c1479cd80bdc5cd1b07b&quot;&gt;&lt;code&gt;8efc2d0&lt;/code&gt;&lt;/a&gt; feat: unflag TypeScript config files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19266&quot;&gt;#19266&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87a9352c621e7cd1d5bb77b3c08df7837363ea12&quot;&gt;&lt;code&gt;87a9352&lt;/code&gt;&lt;/a&gt; feat: check imports and class names in &lt;a href=&quot;https://eslint.org/docs/rules/no-shadow-restricted-names&quot;&gt;&lt;code&gt;no-shadow-restricted-names&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19272&quot;&gt;#19272&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da768d4541c4c30bfc33640a07a8d8a485520b18&quot;&gt;&lt;code&gt;da768d4&lt;/code&gt;&lt;/a&gt; fix: correct &lt;code&gt;overrideConfigFile&lt;/code&gt; type (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19289&quot;&gt;#19289&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d9c23c55be52a431141f38561c14140ee8b15686&quot;&gt;&lt;code&gt;d9c23c5&lt;/code&gt;&lt;/a&gt; docs: replace &lt;code&gt;var&lt;/code&gt; with &lt;code&gt;const&lt;/code&gt; in rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19325&quot;&gt;#19325&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e1a898411fd16c73332d7a2dd28aff9bac8da01&quot;&gt;&lt;code&gt;8e1a898&lt;/code&gt;&lt;/a&gt; docs: add tabs to cli code blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18784&quot;&gt;#18784&lt;/a&gt;) (Jay)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f3aeefbd6547c25d78819ab7e77cf36a2c26611c&quot;&gt;&lt;code&gt;f3aeefb&lt;/code&gt;&lt;/a&gt; docs: rewrite using let and const in rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19320&quot;&gt;#19320&lt;/a&gt;) (PoloSpark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b680b3cc19c1e8d79ab94e7160051177c4adfe7&quot;&gt;&lt;code&gt;0b680b3&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/98c86a99f7657a2f15ea30a251523446b10a7cad&quot;&gt;&lt;code&gt;98c86a9&lt;/code&gt;&lt;/a&gt; docs: &lt;code&gt;Edit this page&lt;/code&gt; button link to different branches (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19228&quot;&gt;#19228&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6947901d14b18dbb2db259c9769bd8ac4cd04c3c&quot;&gt;&lt;code&gt;6947901&lt;/code&gt;&lt;/a&gt; docs: remove hardcoded edit link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19323&quot;&gt;#19323&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03f2f442a9a8bec15e89786980c07be5980cdac5&quot;&gt;&lt;code&gt;03f2f44&lt;/code&gt;&lt;/a&gt; docs: rewrite var with const in rules examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19317&quot;&gt;#19317&lt;/a&gt;) (Thiago)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26c3003bfca2f7d98950446fdf5b3978d17a3a60&quot;&gt;&lt;code&gt;26c3003&lt;/code&gt;&lt;/a&gt; docs: Clarify dangers of eslint:all (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19318&quot;&gt;#19318&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c03825730d277405c357388d62ed48b3973083ba&quot;&gt;&lt;code&gt;c038257&lt;/code&gt;&lt;/a&gt; docs: add &lt;a href=&quot;https://eslint.org/docs/rules/eqeqeq&quot;&gt;&lt;code&gt;eqeqeq&lt;/code&gt;&lt;/a&gt; in related rules to &lt;a href=&quot;https://eslint.org/docs/rules/no-eq-null&quot;&gt;&lt;code&gt;no-eq-null&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19310&quot;&gt;#19310&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89c8fc54c977ac457d3b5525a87cec1c51e72e23&quot;&gt;&lt;code&gt;89c8fc5&lt;/code&gt;&lt;/a&gt; docs: rewrite examples with var using let and const (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19315&quot;&gt;#19315&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db574c4d380e2d25b6111a06bd15caa83f75bb2d&quot;&gt;&lt;code&gt;db574c4&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/no-void&quot;&gt;&lt;code&gt;no-void&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19313&quot;&gt;#19313&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d943c335c528a6a6a631dcbd98506238240ecfb&quot;&gt;&lt;code&gt;8d943c3&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/default-case-last&quot;&gt;&lt;code&gt;default-case-last&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19311&quot;&gt;#19311&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/36ef8bbeab495ef2598a4b1f52e32b4cb50be5e2&quot;&gt;&lt;code&gt;36ef8bb&lt;/code&gt;&lt;/a&gt; docs: rewrite examples with var using let and const (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19298&quot;&gt;#19298&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1610c9ee1479f23b1bc5a6853d0b42b83dacdb7f&quot;&gt;&lt;code&gt;1610c9e&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/no-else-return&quot;&gt;&lt;code&gt;no-else-return&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19309&quot;&gt;#19309&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df409d8f76555c7baa4353d678d5fc460454a4d7&quot;&gt;&lt;code&gt;df409d8&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e842138e689ee5623552e885c3a5ac1b0c2bfcf&quot;&gt;&lt;code&gt;2e84213&lt;/code&gt;&lt;/a&gt; docs: Fix Horizontal Scroll Overflow in Rule Description on Mobile View (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19304&quot;&gt;#19304&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e7361bb6ae93c87fccdf2219379c7793517f17a&quot;&gt;&lt;code&gt;6e7361b&lt;/code&gt;&lt;/a&gt; docs: replace &lt;code&gt;var&lt;/code&gt; with &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt; in rule example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19302&quot;&gt;#19302&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/069af5e9ac43c7f33bd2a30abce3d5d94f504465&quot;&gt;&lt;code&gt;069af5e&lt;/code&gt;&lt;/a&gt; docs: rewrite &lt;code&gt;var&lt;/code&gt; using &lt;code&gt;const&lt;/code&gt; in rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19303&quot;&gt;#19303&lt;/a&gt;) (Kim GyeonWon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/064e35de95339cfedcad467c3c9871d5ff70c1a7&quot;&gt;&lt;code&gt;064e35d&lt;/code&gt;&lt;/a&gt; docs: remove ‘I hope to’ comments from scope-manager-interface (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19300&quot;&gt;#19300&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e003056a805468b07bcf4edba83a90a932fb520&quot;&gt;&lt;code&gt;8e00305&lt;/code&gt;&lt;/a&gt; docs: replace &lt;code&gt;var&lt;/code&gt; with &lt;code&gt;const&lt;/code&gt; in rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19299&quot;&gt;#19299&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a559009f51ad9f081bae5252bb2b7a6e23c54767&quot;&gt;&lt;code&gt;a559009&lt;/code&gt;&lt;/a&gt; docs: Add warning about extending core rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19295&quot;&gt;#19295&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0bfdf6caaf3e1553c67a77da900245879c730ad3&quot;&gt;&lt;code&gt;0bfdf6c&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce0b9ff04242f61c8c49fc1ce164eb45eb3c459a&quot;&gt;&lt;code&gt;ce0b9ff&lt;/code&gt;&lt;/a&gt; docs: add navigation link for &lt;code&gt;code explorer&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19285&quot;&gt;#19285&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e255cc98abef202929112378bfe133f260f2ac9d&quot;&gt;&lt;code&gt;e255cc9&lt;/code&gt;&lt;/a&gt; docs: add bluesky icon to footer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19290&quot;&gt;#19290&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d64851955f410f31c159a7097f6cc7d4a01d6a1&quot;&gt;&lt;code&gt;5d64851&lt;/code&gt;&lt;/a&gt; docs: remove outdated info about environments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19296&quot;&gt;#19296&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eec01f04ae1c44f7c9a8c6afec59dd72f5a57600&quot;&gt;&lt;code&gt;eec01f0&lt;/code&gt;&lt;/a&gt; docs: switch rule examples config format to &lt;code&gt;languageOptions&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19277&quot;&gt;#19277&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b36ca0a490829c579358ec7193bde35275000e04&quot;&gt;&lt;code&gt;b36ca0a&lt;/code&gt;&lt;/a&gt; docs: Fixing Focus Order by Rearranging Element Sequence (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19241&quot;&gt;#19241&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d122c8a756bb8e232ef7c25cca6dcae645094835&quot;&gt;&lt;code&gt;d122c8a&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19282&quot;&gt;#19282&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0367a70a43346f1b9df8be75d38f98f9cfe4007c&quot;&gt;&lt;code&gt;0367a70&lt;/code&gt;&lt;/a&gt; docs: update custom parser docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19288&quot;&gt;#19288&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c07ebb9004309f8691f972d554e8bbb3eb517bc&quot;&gt;&lt;code&gt;8c07ebb&lt;/code&gt;&lt;/a&gt; docs: add &lt;code&gt;border-radius&lt;/code&gt; to &lt;code&gt;hX:target&lt;/code&gt; selector styles (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19270&quot;&gt;#19270&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eff7c5721c101975a03e7906905f1fe2c9538df0&quot;&gt;&lt;code&gt;eff7c57&lt;/code&gt;&lt;/a&gt; docs: add limitation section in &lt;a href=&quot;https://eslint.org/docs/rules/no-loop-func&quot;&gt;&lt;code&gt;no-loop-func&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19287&quot;&gt;#19287&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5db226f4da9ad7d53a4505a90290b68d4036c082&quot;&gt;&lt;code&gt;5db226f&lt;/code&gt;&lt;/a&gt; docs: add missing backticks in various parts of the documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19269&quot;&gt;#19269&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/789edbbae5aeeefc8fee94cd653b0b5f3e2ae3eb&quot;&gt;&lt;code&gt;789edbb&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/613c06a2c341758739473409a2331074884ec7f8&quot;&gt;&lt;code&gt;613c06a&lt;/code&gt;&lt;/a&gt; docs: mark rules that are frozen with ❄️ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19231&quot;&gt;#19231&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/43172ecbd449c13a503cb39539e31106179f5d80&quot;&gt;&lt;code&gt;43172ec&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ac8b3c4ca9f7b84f84356137cf23a1ba6dfecf11&quot;&gt;&lt;code&gt;ac8b3c4&lt;/code&gt;&lt;/a&gt; docs: fix description of &lt;code&gt;overrideConfigFile&lt;/code&gt; option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19262&quot;&gt;#19262&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bbb9b46c20662019e98df85dedde9b68719afa1f&quot;&gt;&lt;code&gt;bbb9b46&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/995b49231a3f0ccddb941663175ce4fead9c9432&quot;&gt;&lt;code&gt;995b492&lt;/code&gt;&lt;/a&gt; docs: fix inconsistent divider in rule categories box (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19249&quot;&gt;#19249&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f76d05da6e745adbea574c32b334638c7ba3c0c8&quot;&gt;&lt;code&gt;f76d05d&lt;/code&gt;&lt;/a&gt; docs: Refactor search result handling with better event listener cleanup (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19252&quot;&gt;#19252&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5f3d7dab303468ae33ccfec61bba75a816f832c&quot;&gt;&lt;code&gt;c5f3d7d&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c52be85c4a916f70807377e1a486adb3a5857347&quot;&gt;&lt;code&gt;c52be85&lt;/code&gt;&lt;/a&gt; chore: upgrade to &lt;code&gt;@eslint/js@9.18.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19330&quot;&gt;#19330&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/362099c580992b2602316fc417ce3e595b96f28c&quot;&gt;&lt;code&gt;362099c&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/495aa499a7390f99b763cba8f2b8312e3eecfe0d&quot;&gt;&lt;code&gt;495aa49&lt;/code&gt;&lt;/a&gt; chore: extract package &lt;code&gt;name&lt;/code&gt; from &lt;code&gt;package.json&lt;/code&gt; for public interface (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19314&quot;&gt;#19314&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6fe0e7244a7e88458ea7fdcebc43794c03793c4b&quot;&gt;&lt;code&gt;6fe0e72&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/json to ^0.9.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19263&quot;&gt;#19263&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.17.0 released</title>
    <link href="https://eslint.org/blog/2024/12/eslint-v9.17.0-released/"/>
    <updated>2024-12-13T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/12/eslint-v9.17.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;no-unused-vars-suggestions&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt; Suggestions&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; rule provides &lt;a href=&quot;https://eslint.org/docs/latest/use/core-concepts/#rule-suggestions&quot;&gt;suggestions&lt;/a&gt; now! When the rule sees code with an unused variable like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Hello&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; b &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;World!&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It will now suggest removing the unused variable declaration:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Hello&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Suggestions also work for more complex cases like unused function arguments, destructuring syntax, etc.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;avg&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;a&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; b&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; c&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; b&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;avg&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;after the suggestion is applied becomes:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;avg&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;a&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; b&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;a &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; b&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;avg&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; status&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; reason &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; Promise&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;allSettled&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;promise1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; promise2&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;status &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;rejected&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;throw&lt;/span&gt; reason&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;after the suggestion becomes:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; status&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; reason &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; Promise&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;allSettled&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;promise1&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; promise2&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;status &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;rejected&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;throw&lt;/span&gt; reason&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;no-unused-vars&lt;/code&gt; suggestions mark the completion of months of work. We will likely further improve and fine-tune this feature in future updates.&lt;/p&gt;
&lt;h3 id=&quot;nullish-message.fix-allowed&quot; tabindex=&quot;-1&quot;&gt;Nullish &lt;code&gt;message.fix&lt;/code&gt; Allowed&lt;/h3&gt;
&lt;p&gt;Previously, if a &lt;a href=&quot;https://eslint.org/docs/latest/use/core-concepts/#custom-processors&quot;&gt;processor&lt;/a&gt; returned a &lt;code&gt;LintMessage&lt;/code&gt; with a &lt;code&gt;fix&lt;/code&gt; property set to &lt;code&gt;undefined&lt;/code&gt; or &lt;code&gt;null&lt;/code&gt;, ESLint would crash with an unhelpful error message when trying to apply the autofix.
This problem has been fixed in the current release.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eed91d12d4d265bd32905dd1fbf8a6d5dbcdb54a&quot;&gt;&lt;code&gt;eed91d1&lt;/code&gt;&lt;/a&gt; feat: add suggestions to &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18352&quot;&gt;#18352&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67d683df29d873002299c70736dacea731b69f5d&quot;&gt;&lt;code&gt;67d683d&lt;/code&gt;&lt;/a&gt; fix: fix crash when &lt;code&gt;message.fix&lt;/code&gt; is nullish (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19168&quot;&gt;#19168&lt;/a&gt;) (ntnyq)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c61870715e5bc1cb51c45a8efd72f392502807b8&quot;&gt;&lt;code&gt;c618707&lt;/code&gt;&lt;/a&gt; fix: ignore vars with non-identifier references in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-assignment&quot;&gt;no-useless-assignment&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19200&quot;&gt;#19200&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c22d2accedd7b0bc381a4eee2c3db4df657b236&quot;&gt;&lt;code&gt;3c22d2a&lt;/code&gt;&lt;/a&gt; docs: update &lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;&lt;code&gt;yoda&lt;/code&gt;&lt;/a&gt; to &lt;code&gt;Yoda&lt;/code&gt; in [&lt;code&gt;yoda](/docs/rules/yoda).md&lt;/code&gt; for consistency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19230&quot;&gt;#19230&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0a220355f447b3674b758776344959ce746b5e3&quot;&gt;&lt;code&gt;e0a2203&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;&lt;code&gt;no-sequences&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19233&quot;&gt;#19233&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4cc48812cdfd686304b5b3b71ea70cd7f2d8389a&quot;&gt;&lt;code&gt;4cc4881&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3db6fdf885b17d25103e3cddc31fea56542e064d&quot;&gt;&lt;code&gt;3db6fdf&lt;/code&gt;&lt;/a&gt; docs: [&lt;a href=&quot;https://eslint.org/docs/rules/no-await-in-loop&quot;&gt;no-await-in-loop&lt;/a&gt;] expand on benefits and inapplicability (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19211&quot;&gt;#19211&lt;/a&gt;) (Kirk Waiblinger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf2a4f686bb387711e269b08f13771e4208113f0&quot;&gt;&lt;code&gt;bf2a4f6&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/func-style&quot;&gt;&lt;code&gt;func-style&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19227&quot;&gt;#19227&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba098bd03c9943007ec77d628dc59f7eaf60f871&quot;&gt;&lt;code&gt;ba098bd&lt;/code&gt;&lt;/a&gt; docs: add missing header to &lt;a href=&quot;https://eslint.org/docs/rules/prefer-spread&quot;&gt;&lt;code&gt;prefer-spread&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19224&quot;&gt;#19224&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b607ae64913ca2b6450a74344ab0ad548e314915&quot;&gt;&lt;code&gt;b607ae6&lt;/code&gt;&lt;/a&gt; docs: update description of &lt;a href=&quot;https://eslint.org/docs/rules/no-param-reassign&quot;&gt;&lt;code&gt;no-param-reassign&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19220&quot;&gt;#19220&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1eb424de558fba301eaef9a7fce256539b48dee3&quot;&gt;&lt;code&gt;1eb424d&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;&lt;code&gt;prefer-destructuring&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19223&quot;&gt;#19223&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85998d14051c7a0c5b7b6da8cfda13dc1fc7c153&quot;&gt;&lt;code&gt;85998d1&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/no-unneeded-ternary&quot;&gt;&lt;code&gt;no-unneeded-ternary&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19222&quot;&gt;#19222&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b75b32c091f0742788ecf232f52d9e9427008526&quot;&gt;&lt;code&gt;b75b32c&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/no-new-func&quot;&gt;&lt;code&gt;no-new-func&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19219&quot;&gt;#19219&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7700bcc9c566b3e348a72f3e6a4a6f5ac3345a4&quot;&gt;&lt;code&gt;a7700bc&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;&lt;code&gt;id-length&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19217&quot;&gt;#19217&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2bb429974ae397c1c1cc495fa7630441c9da61a&quot;&gt;&lt;code&gt;e2bb429&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to [&lt;code&gt;complexity](/docs/rules/complexity).md&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19214&quot;&gt;#19214&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/045d716b92276720961e950e6a259ef40e8e07ea&quot;&gt;&lt;code&gt;045d716&lt;/code&gt;&lt;/a&gt; docs: add missing &lt;code&gt;)&lt;/code&gt; to &lt;a href=&quot;https://eslint.org/docs/rules/id-denylist&quot;&gt;&lt;code&gt;id-denylist&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19213&quot;&gt;#19213&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7fe4114be2e714506fd406ea4474430ea3de0f93&quot;&gt;&lt;code&gt;7fe4114&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c743ba6402a27130f8b7700ae0816b087e20085d&quot;&gt;&lt;code&gt;c743ba6&lt;/code&gt;&lt;/a&gt; docs: add CSS language to &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;&lt;code&gt;no-restricted-syntax&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19208&quot;&gt;#19208&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1416d70d4358a57e99e810dd25ac0e6263924c02&quot;&gt;&lt;code&gt;1416d70&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/eqeqeq&quot;&gt;&lt;code&gt;eqeqeq&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19207&quot;&gt;#19207&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b950c1b7db28cc569a53b6677b71a40f1fe3bf98&quot;&gt;&lt;code&gt;b950c1b&lt;/code&gt;&lt;/a&gt; docs: add missing backticks to &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;&lt;code&gt;prefer-object-spread&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19206&quot;&gt;#19206&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8a941cb776d0872236c33027bcff6337739a6ddb&quot;&gt;&lt;code&gt;8a941cb&lt;/code&gt;&lt;/a&gt; docs: update docs and &lt;code&gt;description&lt;/code&gt; of &lt;a href=&quot;https://eslint.org/docs/rules/require-unicode-regexp&quot;&gt;&lt;code&gt;require-unicode-regexp&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19205&quot;&gt;#19205&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cbab2281ddd583ddddfb55151babbd9ea59eb078&quot;&gt;&lt;code&gt;cbab228&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2257ce41278dd85170d4d102969738bcabd5903&quot;&gt;&lt;code&gt;f2257ce&lt;/code&gt;&lt;/a&gt; docs: update comments and &lt;code&gt;description&lt;/code&gt; of &lt;a href=&quot;https://eslint.org/docs/rules/no-script-url&quot;&gt;&lt;code&gt;no-script-url&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19203&quot;&gt;#19203&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/365f0f4df7045c42de0f9624c488d62cf7f6cece&quot;&gt;&lt;code&gt;365f0f4&lt;/code&gt;&lt;/a&gt; docs: add missing backtick to &lt;a href=&quot;https://eslint.org/docs/rules/default-case-last&quot;&gt;&lt;code&gt;default-case-last&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19202&quot;&gt;#19202&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6b84f535e84050b0c63ae304eb17f9d181ac299&quot;&gt;&lt;code&gt;e6b84f5&lt;/code&gt;&lt;/a&gt; docs: add missing punctuation in document (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19161&quot;&gt;#19161&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c88708e0571b62ee5d6c6168373e4204ec75b931&quot;&gt;&lt;code&gt;c88708e&lt;/code&gt;&lt;/a&gt; docs: replace quote with backtick in &lt;code&gt;description&lt;/code&gt; of &lt;a href=&quot;https://eslint.org/docs/rules/for-direction&quot;&gt;&lt;code&gt;for-direction&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19199&quot;&gt;#19199&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a76f233a67abebf861efc0dd06cde2187abbd273&quot;&gt;&lt;code&gt;a76f233&lt;/code&gt;&lt;/a&gt; docs: use higher contrast color tokens for code comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19187&quot;&gt;#19187&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db195024978044b7457d5d551299f96f6b60caed&quot;&gt;&lt;code&gt;db19502&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc243c948226a585f01d3e68b4cedbabcc5e0e40&quot;&gt;&lt;code&gt;cc243c9&lt;/code&gt;&lt;/a&gt; chore: upgrade to &lt;code&gt;@eslint/js@9.17.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19242&quot;&gt;#19242&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/84c57877801da729265cf9ce11d325c0be8c82b1&quot;&gt;&lt;code&gt;84c5787&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c4f53b8c961dd6aed6c0cdca303018d805a59fe&quot;&gt;&lt;code&gt;4c4f53b&lt;/code&gt;&lt;/a&gt; chore: add missing backticks to &lt;code&gt;flags.js&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19226&quot;&gt;#19226&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b3132c3f55db6b51665c4c42bb762d00e266262&quot;&gt;&lt;code&gt;4b3132c&lt;/code&gt;&lt;/a&gt; chore: update dependency eslint-plugin-expect-type to ^0.6.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19221&quot;&gt;#19221&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9bf220464a594d44744fd35d688c61159366b8ea&quot;&gt;&lt;code&gt;9bf2204&lt;/code&gt;&lt;/a&gt; chore: add type definitions for the &lt;code&gt;eslint-config-eslint&lt;/code&gt; package (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19050&quot;&gt;#19050&lt;/a&gt;) (Arya Emami)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee8c2200a19dd55aa5068b6cd336a2aec7c52ad3&quot;&gt;&lt;code&gt;ee8c220&lt;/code&gt;&lt;/a&gt; chore: fix incorrect &lt;code&gt;name&lt;/code&gt; property in &lt;code&gt;integration-tutorial-code&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19218&quot;&gt;#19218&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cca801dd17931cfd913456569b41f6132d0366aa&quot;&gt;&lt;code&gt;cca801d&lt;/code&gt;&lt;/a&gt; chore: Upgrade cross-spawn to 7.0.6 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19185&quot;&gt;#19185&lt;/a&gt;) (folortin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.16.0 released</title>
    <link href="https://eslint.org/blog/2024/11/eslint-v9.16.0-released/"/>
    <updated>2024-11-29T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/11/eslint-v9.16.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;ignorecomputedkeys-option-for-sort-keys&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;ignoreComputedKeys&lt;/code&gt; option for &lt;code&gt;sort-keys&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;This release adds a new boolean option &lt;a href=&quot;https://eslint.org/docs/latest/rules/sort-keys#ignorecomputedkeys&quot;&gt;&lt;code&gt;ignoreComputedKeys&lt;/code&gt;&lt;/a&gt; to the &lt;code&gt;sort-keys&lt;/code&gt; rule.
&lt;code&gt;ignoreComputedKeys&lt;/code&gt; allows a more consistent sorting of properties with non-computed names by treating computed keys as group separators rather than part of a group.
The following example shows the expected sorting of properties in an object literal without the &lt;code&gt;ignoreComputedKeys&lt;/code&gt; option.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;with &lt;code&gt;ignoreComputedKeys: false&lt;/code&gt; (default)&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; obj &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;c&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;7.5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;15&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When &lt;code&gt;ignoreComputedKeys&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt;, the computed key &lt;code&gt;c&lt;/code&gt; can appear anywhere in the literal, as long as the other groups of properties are sorted.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;with &lt;code&gt;ignoreComputedKeys: true&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; obj &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;c&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;7.5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;15&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; obj &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;c&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;7.5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; obj &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;d&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;c&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;7.5&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;etc.&lt;/p&gt;
&lt;h3 id=&quot;language-agnostic-no-restricted-syntax&quot; tabindex=&quot;-1&quot;&gt;Language-agnostic &lt;code&gt;no-restricted-syntax&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Another enhancement in this release is the ability to use the &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-restricted-syntax&quot;&gt;&lt;code&gt;no-restricted-syntax&lt;/code&gt;&lt;/a&gt; rule with any language.
This was already possible in previous releases, but now usage with language plugins is officially supported and documented.&lt;/p&gt;
&lt;p&gt;When linting JSON files with the &lt;a href=&quot;https://www.npmjs.com/package/@eslint/json&quot;&gt;&lt;code&gt;@eslint/json&lt;/code&gt;&lt;/a&gt; plugin, a config that warns about the usage of &lt;code&gt;null&lt;/code&gt; could look like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; json &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@eslint/json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;language&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;json/json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            json&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;no-restricted-syntax&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token string&quot;&gt;&quot;warn&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token string&quot;&gt;&quot;Null&quot;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// AST selector for `null`&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you would like to restrict syntax in your project based on &lt;a href=&quot;https://eslint.org/docs/latest/extend/selectors&quot;&gt;AST selectors&lt;/a&gt; but you’re unsure what nodes represent a particular code, we recommend using &lt;a href=&quot;https://explorer.eslint.org/&quot;&gt;Code Explorer&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f70eb142cce025e7040d016a959eff0f51eb672&quot;&gt;&lt;code&gt;8f70eb1&lt;/code&gt;&lt;/a&gt; feat: Add &lt;code&gt;ignoreComputedKeys&lt;/code&gt; option in &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;&lt;code&gt;sort-keys&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19162&quot;&gt;#19162&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9eefc8f813b5c31f49fbbd9a36f439b365bea180&quot;&gt;&lt;code&gt;9eefc8f&lt;/code&gt;&lt;/a&gt; docs: fix typos in &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;&lt;code&gt;use-isnan&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19190&quot;&gt;#19190&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c8cea8c803962a4358032fde5c117a1e9c41ca0&quot;&gt;&lt;code&gt;0c8cea8&lt;/code&gt;&lt;/a&gt; docs: switch the order of words in &lt;a href=&quot;https://eslint.org/docs/rules/no-unreachable&quot;&gt;&lt;code&gt;no-unreachable&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19189&quot;&gt;#19189&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c19417c644a29b5113d3a2b94ce00640117574b&quot;&gt;&lt;code&gt;0c19417&lt;/code&gt;&lt;/a&gt; docs: add missing backtick to &lt;a href=&quot;https://eslint.org/docs/rules/no-async-promise-executor&quot;&gt;&lt;code&gt;no-async-promise-executor&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19188&quot;&gt;#19188&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8df927646cadaa70263914c62f2f76fccb8c46fd&quot;&gt;&lt;code&gt;8df9276&lt;/code&gt;&lt;/a&gt; docs: add backtick in &lt;code&gt;-0&lt;/code&gt; in &lt;code&gt;description&lt;/code&gt; of &lt;a href=&quot;https://eslint.org/docs/rules/no-compare-neg-zero&quot;&gt;&lt;code&gt;no-compare-neg-zero&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19186&quot;&gt;#19186&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7e16e3fb8594e361b3e121d2d4059dc26e30c407&quot;&gt;&lt;code&gt;7e16e3f&lt;/code&gt;&lt;/a&gt; docs: fix &lt;code&gt;caseSensitive&lt;/code&gt; option’s title of &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;&lt;code&gt;sort-keys&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19183&quot;&gt;#19183&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c6b84212144da3238693fa56500b02bd4a9f05a&quot;&gt;&lt;code&gt;0c6b842&lt;/code&gt;&lt;/a&gt; docs: fix typos in &lt;code&gt;migration-guide.md&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19180&quot;&gt;#19180&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/353266edf827d4e63e9efef321f5d128748bc74d&quot;&gt;&lt;code&gt;353266e&lt;/code&gt;&lt;/a&gt; docs: fix a typo in &lt;code&gt;debug.md&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19179&quot;&gt;#19179&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ff318a528e3f6b8b9c6a62ea949d66ebb7f0716&quot;&gt;&lt;code&gt;5ff318a&lt;/code&gt;&lt;/a&gt; docs: delete unnecessary horizontal rule(&lt;code&gt;---&lt;/code&gt;) in &lt;code&gt;nodejs-api&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19175&quot;&gt;#19175&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/576bcc5461c0c00c30dfceec9abcddb99e559c74&quot;&gt;&lt;code&gt;576bcc5&lt;/code&gt;&lt;/a&gt; docs: mark more rules as handled by TypeScript (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19164&quot;&gt;#19164&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/742d054ac1124d4e53c84234dd6960d4e272d490&quot;&gt;&lt;code&gt;742d054&lt;/code&gt;&lt;/a&gt; docs: note that &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;&lt;code&gt;no-restricted-syntax&lt;/code&gt;&lt;/a&gt; can be used with any language (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19148&quot;&gt;#19148&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/feb703b3dc198cda03fb69c75a31d56d999b9d2e&quot;&gt;&lt;code&gt;feb703b&lt;/code&gt;&lt;/a&gt; chore: upgrade to &lt;code&gt;@eslint/js@9.16.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19195&quot;&gt;#19195&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df9bf9519a302e284700ad300463ecdf2ebf9f25&quot;&gt;&lt;code&gt;df9bf95&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f831893b6e2951f56ce8b9ff12e4a16913b72b47&quot;&gt;&lt;code&gt;f831893&lt;/code&gt;&lt;/a&gt; chore: add type for &lt;code&gt;ignoreComputedKeys&lt;/code&gt; option of &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;&lt;code&gt;sort-keys&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19184&quot;&gt;#19184&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3afb8a1dcf12ad12df480db014042a51403ff672&quot;&gt;&lt;code&gt;3afb8a1&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/json to ^0.8.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19177&quot;&gt;#19177&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f77c53b12d00403b88a0e02c8d2432278abcf52&quot;&gt;&lt;code&gt;1f77c53&lt;/code&gt;&lt;/a&gt; chore: add &lt;code&gt;repository.directory&lt;/code&gt; property to &lt;code&gt;package.json&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19165&quot;&gt;#19165&lt;/a&gt;) (루밀LuMir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d46059410a0e02b98067aa31975c25fd8d0d1c2b&quot;&gt;&lt;code&gt;d460594&lt;/code&gt;&lt;/a&gt; chore: update dependency @arethetypeswrong/cli to ^0.17.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19147&quot;&gt;#19147&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/45cd4ead9c4fc354a2542b806ec82afb67cb54fc&quot;&gt;&lt;code&gt;45cd4ea&lt;/code&gt;&lt;/a&gt; refactor: update default options in rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19136&quot;&gt;#19136&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.15.0 released</title>
    <link href="https://eslint.org/blog/2024/11/eslint-v9.15.0-released/"/>
    <updated>2024-11-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/11/eslint-v9.15.0-released/</id>
    <content type="html">&lt;p&gt;This release updates the &lt;code&gt;@eslint/plugin-kit&lt;/code&gt; dependency to the latest version 0.2.3 which includes the fix for security advisory &lt;a href=&quot;https://github.com/eslint/rewrite/security/advisories/GHSA-7q7g-4xm8-89cq&quot;&gt;GHSA-7q7g-4xm8-89cq&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;meta.defaultoptions&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;meta.defaultOptions&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Rules can now specify &lt;a href=&quot;https://eslint.org/docs/latest/extend/custom-rules#option-defaults&quot;&gt;default options&lt;/a&gt;. ESLint will recursively merge any user-provided options elements on top of the default elements.&lt;/p&gt;
&lt;p&gt;This feature makes it easier to work with options in rules.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// my-rule.js&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;meta&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;defaultOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;alias&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;basic&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;ignoreClassFields&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;schema&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;object&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;properties&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token literal-property property&quot;&gt;alias&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token literal-property property&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;string&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token literal-property property&quot;&gt;ignoreClassFields&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token literal-property property&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;boolean&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;additionalProperties&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// `context.options` is guaranteed to be an array with a single object&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// that has a string property `alias` and a boolean property `ignoreClassFields`.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// If the rule is enabled with no options specified in the configuration file,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// `alias` will be `&quot;basic&quot;`, and `ignoreClassFields` will be `false`.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; alias&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; ignoreClassFields &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;options&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;/* ... */&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This feature also allows document generators, other tools and integrations, and end users to easily find the default options for rules.&lt;/p&gt;
&lt;h3 id=&quot;other-notable-changes&quot; tabindex=&quot;-1&quot;&gt;Other notable changes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Custom &lt;a href=&quot;https://eslint.org/docs/latest/extend/languages&quot;&gt;languages&lt;/a&gt; can now provide the &lt;code&gt;normalizeLanguageOptions(languageOptions)&lt;/code&gt; method. The return value will be used as &lt;code&gt;languageOptions&lt;/code&gt; when calling &lt;code&gt;parse()&lt;/code&gt;, &lt;code&gt;createSourceCode()&lt;/code&gt;, and &lt;code&gt;applyLanguageOptions()&lt;/code&gt; methods and as the value of &lt;code&gt;context.languageOptions&lt;/code&gt; property in rules.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-useless-computed-key&quot;&gt;&lt;code&gt;no-useless-computed-key&lt;/code&gt;&lt;/a&gt; rule now fully supports object destructuring patterns.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/01557cec24203be72222858a3912da0a474ac75c&quot;&gt;&lt;code&gt;01557ce&lt;/code&gt;&lt;/a&gt; feat: Implement Language#normalizeLanguageOptions() (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19104&quot;&gt;#19104&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2edc0e2bdc40c4a6da8d526c82c0b6c582bae419&quot;&gt;&lt;code&gt;2edc0e2&lt;/code&gt;&lt;/a&gt; feat: add meta.defaultOptions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17656&quot;&gt;#17656&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bdec50e91baf9d5eefa07d97d2059fdebb53cdaa&quot;&gt;&lt;code&gt;bdec50e&lt;/code&gt;&lt;/a&gt; feat: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;&lt;code&gt;no-useless-computed-key&lt;/code&gt;&lt;/a&gt; false negative with &lt;code&gt;__proto__&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19123&quot;&gt;#19123&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3087c9e95094cad1354aca2e4ae48c7bd2381184&quot;&gt;&lt;code&gt;3087c9e&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;meta&lt;/code&gt; object to &lt;code&gt;@eslint/js&lt;/code&gt; plugin (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19095&quot;&gt;#19095&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd33f1315ac59b1b3828dbab8e1e056a1585eff0&quot;&gt;&lt;code&gt;fd33f13&lt;/code&gt;&lt;/a&gt; fix: update types for &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19060&quot;&gt;#19060&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bd35098f5b949ecb83e8c7e287524b28b2a3dd71&quot;&gt;&lt;code&gt;bd35098&lt;/code&gt;&lt;/a&gt; fix: switch away from Node.js node:assert and AssertionError (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19082&quot;&gt;#19082&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9db5b152c325a930130d49ca967013471c3ba0dc&quot;&gt;&lt;code&gt;9db5b15&lt;/code&gt;&lt;/a&gt; fix: unsafe report for &lt;a href=&quot;https://eslint.org/docs/rules/no-lonely-if&quot;&gt;&lt;code&gt;no-lonely-if&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19087&quot;&gt;#19087&lt;/a&gt;) (Abraham Guo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68fa497f6a11f1738dce85bb2bdd7a5f8b9f5d6d&quot;&gt;&lt;code&gt;68fa497&lt;/code&gt;&lt;/a&gt; fix: ignore files on a different drive on Windows (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19069&quot;&gt;#19069&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4ce625a230778a41b856162df9ebcc57c25cc103&quot;&gt;&lt;code&gt;4ce625a&lt;/code&gt;&lt;/a&gt; fix: upgrade @humanwhocodes/retry@0.4.1 to avoid debug logs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19102&quot;&gt;#19102&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d9279202e7d15452e44adf38451d33d4aaad3bd4&quot;&gt;&lt;code&gt;d927920&lt;/code&gt;&lt;/a&gt; docs: fix styles in no-js mode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18916&quot;&gt;#18916&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/09bc2a88c00aa9a93c7de505795fc4e85b2e6357&quot;&gt;&lt;code&gt;09bc2a8&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/39089c80a7af09494fce86a6574bf012cbe46d10&quot;&gt;&lt;code&gt;39089c8&lt;/code&gt;&lt;/a&gt; docs: add &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;&lt;code&gt;no-useless-computed-key&lt;/code&gt;&lt;/a&gt; examples with object patterns (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19109&quot;&gt;#19109&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/895c60f7fe09f59df1e9490006220d3ec4b9d5b0&quot;&gt;&lt;code&gt;895c60f&lt;/code&gt;&lt;/a&gt; docs: add missing messageId property and suggestion properties (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19122&quot;&gt;#19122&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/298625eb65dc00bfa0a877ea46faada22021c23e&quot;&gt;&lt;code&gt;298625e&lt;/code&gt;&lt;/a&gt; docs: Change CLI -c to use flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19103&quot;&gt;#19103&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/522d8a32f326c52886c531f43cf6a1ff15af8286&quot;&gt;&lt;code&gt;522d8a3&lt;/code&gt;&lt;/a&gt; docs: add deprecation on &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt;, &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;&lt;code&gt;quotes&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;&lt;code&gt;semi&lt;/code&gt;&lt;/a&gt; rule types (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19090&quot;&gt;#19090&lt;/a&gt;) (Marco Pasqualetti)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2967d91037ad670ea3a67fdb9c171b60d9af138b&quot;&gt;&lt;code&gt;2967d91&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.15.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19133&quot;&gt;#19133&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b441bee6ad9807fef614bd071e6bd3e8b3307b2d&quot;&gt;&lt;code&gt;b441bee&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d6bf4a250f97d8ff1e2606e3d769e016a32f45b&quot;&gt;&lt;code&gt;7d6bf4a&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/core@0.9.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19131&quot;&gt;#19131&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/902e70713de1ab67ede9ef8a3836fd2d09a759e5&quot;&gt;&lt;code&gt;902e707&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/plugin-kit@0.2.3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19130&quot;&gt;#19130&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ff6c1dd09f32b56c05ab97f328741fc8ffb1f64&quot;&gt;&lt;code&gt;5ff6c1d&lt;/code&gt;&lt;/a&gt; chore: bump cross-spawn (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19125&quot;&gt;#19125&lt;/a&gt;) (Ian Bobinac)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cceccc771631011e04b37122b990205f0e8b6925&quot;&gt;&lt;code&gt;cceccc7&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/json to ^0.6.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19117&quot;&gt;#19117&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0da3f732fe1776f8f79dac829b2cab4cedd4b6d8&quot;&gt;&lt;code&gt;0da3f73&lt;/code&gt;&lt;/a&gt; chore: update algolia referrer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19114&quot;&gt;#19114&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f08332ac03e51002f8de6da5c5a362608205437&quot;&gt;&lt;code&gt;4f08332&lt;/code&gt;&lt;/a&gt; ci: unpin &lt;code&gt;trunk-io/trunk-action&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19108&quot;&gt;#19108&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6b75683b47c346faaeb6c1dac8e168d64338c7b3&quot;&gt;&lt;code&gt;6b75683&lt;/code&gt;&lt;/a&gt; perf: optimize &lt;code&gt;text-table&lt;/code&gt; by replacing regex with &lt;code&gt;trimEnd&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19061&quot;&gt;#19061&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.14.0 released</title>
    <link href="https://eslint.org/blog/2024/11/eslint-v9.14.0-released/"/>
    <updated>2024-11-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/11/eslint-v9.14.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;support-for-import-attributes&quot; tabindex=&quot;-1&quot;&gt;Support for Import Attributes&lt;/h3&gt;
&lt;p&gt;We have updated ESLint to fully support the ECMAScript 2025 &lt;a href=&quot;https://github.com/tc39/proposal-import-attributes&quot;&gt;Import Attributes&lt;/a&gt; syntax. This syntax allows module import statements and dynamic imports to pass on more information alongside the module specifier. Host environments can use this information to modify import behavior and support additional types of modules. For example, when &lt;code&gt;type: &amp;quot;json&amp;quot;&lt;/code&gt; is specified, modules are treated as &lt;a href=&quot;https://github.com/tc39/proposal-json-modules&quot;&gt;JSON Modules&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; json &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;./foo.json&quot;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;foo.json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The updates in ESLint include parsing and ensuring that naming convention rules do not apply to import attribute keys as they are defined by the ECMAScript Specification or by the host environment and thus users have no control over their naming.&lt;/p&gt;
&lt;p&gt;Please note that &lt;a href=&quot;https://eslint.org/blog/2023/10/deprecating-formatting-rules/&quot;&gt;deprecated formatting rules&lt;/a&gt; will not be updated to support this syntax. If you are still using core formatting rules, we recommend switching to a source code formatter. Alternatively, you can replace core formatting rules with corresponding rules from &lt;a href=&quot;https://eslint.style/packages/js&quot;&gt;&lt;code&gt;@stylistic/eslint-plugin-js&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;support-for-regexp-modifiers&quot; tabindex=&quot;-1&quot;&gt;Support for RegExp Modifiers&lt;/h3&gt;
&lt;p&gt;We have updated ESLint to fully support the ECMAScript 2025 &lt;a href=&quot;https://github.com/tc39/proposal-regexp-modifiers&quot;&gt;Regular Expression Pattern Modifiers&lt;/a&gt;. This feature allows you to change the currently active RegExp flags within a subexpression.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; regex1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;^(?i:[a-z])[a-z]$&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; regex2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;^[a-z](?-i:[a-z])$&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The updates in ESLint include parsing and ensuring that rules related to regular expressions are behaving as expected.&lt;/p&gt;
&lt;h3 id=&quot;improved-configuration-file-lookup-performance&quot; tabindex=&quot;-1&quot;&gt;Improved configuration file lookup performance&lt;/h3&gt;
&lt;p&gt;In v9.13.0, we introduced changes to how configuration files were looked up. Some of these changes negatively impact ESLint’s runtime performance due to incorrect caching of configuration file data. This was visible primarily using the default configuration lookup algorithm, where a &lt;a href=&quot;https://github.com/eslint/eslint/issues/19025&quot;&gt;20-30% performance degradation was reported&lt;/a&gt; (the new algorithm, accessed via &lt;code&gt;--flag unstable_config_lookup_from_file&lt;/code&gt;, has different performance characteristics and didn’t show the same negative performance impact in our tests).&lt;/p&gt;
&lt;p&gt;We’ve now fixed the configuration file lookup caching behavior both in the default algorithm and the experimental algorithm so you should improved performance when you upgrade from v9.13.0.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fa009f25992d3d305437205be0ca145a0fb53f4&quot;&gt;&lt;code&gt;3fa009f&lt;/code&gt;&lt;/a&gt; feat: add support for Import Attributes and RegExp Modifiers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19076&quot;&gt;#19076&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0faee30e007a89bd7bdbc22a70223fabb99a541&quot;&gt;&lt;code&gt;b0faee3&lt;/code&gt;&lt;/a&gt; feat: add types for the &lt;code&gt;@eslint/js&lt;/code&gt; package (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19010&quot;&gt;#19010&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24d0172bbfb92cac663cb1631bd04e7539262066&quot;&gt;&lt;code&gt;24d0172&lt;/code&gt;&lt;/a&gt; fix: enable retry concurrency limit for readFile() (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19077&quot;&gt;#19077&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b44206725247d30b10cd58859c388949f5489087&quot;&gt;&lt;code&gt;b442067&lt;/code&gt;&lt;/a&gt; fix: Don’t crash when directory is deleted during traversal. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19067&quot;&gt;#19067&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d474443109762f3b92811df0411965cf64f595c2&quot;&gt;&lt;code&gt;d474443&lt;/code&gt;&lt;/a&gt; fix: avoid call stack overflow while processing globs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19035&quot;&gt;#19035&lt;/a&gt;) (Livia Medeiros)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/151c965aec1c46000ac7dfc67a1c04802112aafc&quot;&gt;&lt;code&gt;151c965&lt;/code&gt;&lt;/a&gt; docs: update &lt;code&gt;context.languageOptions.parser&lt;/code&gt; description (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19084&quot;&gt;#19084&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dc34f94a2ed25b37ac4aafcabed7bfae582db77e&quot;&gt;&lt;code&gt;dc34f94&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f16e846ac004bc32e52cd3991d14d7a89374bbb5&quot;&gt;&lt;code&gt;f16e846&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee0a77ea3caa5838bab704b54a577eefbed58f68&quot;&gt;&lt;code&gt;ee0a77e&lt;/code&gt;&lt;/a&gt; docs: change link from @types/eslint to lib/types (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19049&quot;&gt;#19049&lt;/a&gt;) (Karl Horky)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/50f03a119e6827c03b1d6c86d3aa1f4820b609e8&quot;&gt;&lt;code&gt;50f03a1&lt;/code&gt;&lt;/a&gt; docs: Clarify global ignores in config migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19032&quot;&gt;#19032&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/37c9177aa07296a7a794c4b4ef5333e16fa22415&quot;&gt;&lt;code&gt;37c9177&lt;/code&gt;&lt;/a&gt; build: update &lt;code&gt;@wdio/*&lt;/code&gt; dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19068&quot;&gt;#19068&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/35a8858d62cb050fa0b56702e55c94ffaaf6956d&quot;&gt;&lt;code&gt;35a8858&lt;/code&gt;&lt;/a&gt; build: exclude flawed dendency versions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19065&quot;&gt;#19065&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f36cb1649a85028fb3999ee2056ee467a907c061&quot;&gt;&lt;code&gt;f36cb16&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.14.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19086&quot;&gt;#19086&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28be4471f6eb61b4304ae3d17ea7eeacc6364bbe&quot;&gt;&lt;code&gt;28be447&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f48a2a0e9bf4a659b9af5e70e873fb631430c1ba&quot;&gt;&lt;code&gt;f48a2a0&lt;/code&gt;&lt;/a&gt; test: add &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;&lt;code&gt;no-invalid-regexp&lt;/code&gt;&lt;/a&gt; tests with RegExp Modifiers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19075&quot;&gt;#19075&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/425202ed49a1372c1719d4e7b48d0fbdda8af9fa&quot;&gt;&lt;code&gt;425202e&lt;/code&gt;&lt;/a&gt; perf: Fix caching in config loaders (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19042&quot;&gt;#19042&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3d44b3c4751e4c44c32b879b65a723faee9c1c29&quot;&gt;&lt;code&gt;3d44b3c&lt;/code&gt;&lt;/a&gt; ci: run tests in Node.js 23 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19055&quot;&gt;#19055&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/725962731538eaa38d5d78b9e82ce3fccc9762d0&quot;&gt;&lt;code&gt;7259627&lt;/code&gt;&lt;/a&gt; test: ensure tmp directory cleanup in &lt;code&gt;check-emfile-handling.js&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19036&quot;&gt;#19036&lt;/a&gt;) (Livia Medeiros)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.13.0 released</title>
    <link href="https://eslint.org/blog/2024/10/eslint-v9.13.0-released/"/>
    <updated>2024-10-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/10/eslint-v9.13.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The predefined array of config objects used by ESLint can be now accessed programmatically as &lt;a href=&quot;https://eslint.org/docs/latest/integrate/nodejs-api#-eslintdefaultconfig&quot;&gt;&lt;code&gt;ESLint.defaultConfig&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;To speed up loading, the ESLint CLI will automatically enable V8’s code cache in newer versions of Node.js.&lt;/li&gt;
&lt;li&gt;Custom languages can now provide their default options with the &lt;code&gt;defaultLanguageOptions&lt;/code&gt; property. See the documentation about the &lt;a href=&quot;https://eslint.org/docs/latest/extend/languages#the-language-object&quot;&gt;&lt;code&gt;Language&lt;/code&gt; object&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/381c32b6975fa3208c62ca2b1052eb87182ed731&quot;&gt;&lt;code&gt;381c32b&lt;/code&gt;&lt;/a&gt; feat: Allow languages to provide &lt;code&gt;defaultLanguageOptions&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19003&quot;&gt;#19003&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf723bd0f948dbfef57f9b34ff894e7603aeaf88&quot;&gt;&lt;code&gt;bf723bd&lt;/code&gt;&lt;/a&gt; feat: Improve eslintrc warning message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19023&quot;&gt;#19023&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1def4cdfab1f067c5089df8b36242cdf912b0eb6&quot;&gt;&lt;code&gt;1def4cd&lt;/code&gt;&lt;/a&gt; feat: drop support for jiti v1.21 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18996&quot;&gt;#18996&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f879be240ca7ddf485b700df0eb93985ccb1db45&quot;&gt;&lt;code&gt;f879be2&lt;/code&gt;&lt;/a&gt; feat: export &lt;code&gt;ESLint.defaultConfig&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18983&quot;&gt;#18983&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78836d40ebd3881e527075a991da4cbb0ff9adfc&quot;&gt;&lt;code&gt;78836d4&lt;/code&gt;&lt;/a&gt; fix: update the &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;&lt;code&gt;complexity&lt;/code&gt;&lt;/a&gt; rule type (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19027&quot;&gt;#19027&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/064c8b612e2e4b773d6b25867f2045e3ceaa9d66&quot;&gt;&lt;code&gt;064c8b6&lt;/code&gt;&lt;/a&gt; fix: update rule types (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18925&quot;&gt;#18925&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/abdbfa83907712d0d44a35aeed4e0ea7bf106740&quot;&gt;&lt;code&gt;abdbfa8&lt;/code&gt;&lt;/a&gt; docs: mark &lt;code&gt;LintMessage#nodeType&lt;/code&gt; as deprecated (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19019&quot;&gt;#19019&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19e68d3f3a86cf23e5c98eaf8736eeaa33f194f4&quot;&gt;&lt;code&gt;19e68d3&lt;/code&gt;&lt;/a&gt; docs: update deprecated rules type definitions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19018&quot;&gt;#19018&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7dd402d33226d821a17b22c4753ce9c40fc909bd&quot;&gt;&lt;code&gt;7dd402d&lt;/code&gt;&lt;/a&gt; docs: Update examples of passing multiple values to a CLI option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19006&quot;&gt;#19006&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5dcbc519b729698be651bdbddb39da774cb70bf1&quot;&gt;&lt;code&gt;5dcbc51&lt;/code&gt;&lt;/a&gt; docs: Add example with side-effect imports to &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18997&quot;&gt;#18997&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ee87ca1c50018947e76c29e78da9aaf711f53a2&quot;&gt;&lt;code&gt;1ee87ca&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c3dbdc2319fcf2f65c2de13f9064c5a315be890&quot;&gt;&lt;code&gt;2c3dbdc&lt;/code&gt;&lt;/a&gt; docs: Use prerendered sponsors for README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18988&quot;&gt;#18988&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68d2d9dfd63401b6a9b413f11ac2c4b583e4897a&quot;&gt;&lt;code&gt;68d2d9d&lt;/code&gt;&lt;/a&gt; chore: upgrade to &lt;code&gt;@eslint/js@9.13.0&lt;/code&gt; and &lt;code&gt;@eslint/core@^0.7.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19034&quot;&gt;#19034&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2211f0aeb350f55e1fa71d4df93d46bc1795789d&quot;&gt;&lt;code&gt;2211f0a&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c7abaef5332caf4b6251c9550a81a9c29bf324fd&quot;&gt;&lt;code&gt;c7abaef&lt;/code&gt;&lt;/a&gt; perf: using Node.js compile cache (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19012&quot;&gt;#19012&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d7c077145d070aa7754018b29b038ce2e0c8b0e&quot;&gt;&lt;code&gt;1d7c077&lt;/code&gt;&lt;/a&gt; chore: add pkg.type “commonjs” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19011&quot;&gt;#19011&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/468e3bdadfdf5f197a44efd6c8dc5cf2b241f964&quot;&gt;&lt;code&gt;468e3bd&lt;/code&gt;&lt;/a&gt; test: fix &lt;code&gt;ESLint&lt;/code&gt; tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/19021&quot;&gt;#19021&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed4635fa0e4fb91705223a7d9c230b6e9a87cd4c&quot;&gt;&lt;code&gt;ed4635f&lt;/code&gt;&lt;/a&gt; ci: upgrade knip@5.32.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18992&quot;&gt;#18992&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/efad76732170a9a7db2e056a8d9a0cf503448c48&quot;&gt;&lt;code&gt;efad767&lt;/code&gt;&lt;/a&gt; chore: remove unused ignore dependency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18993&quot;&gt;#18993&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>no-unused-binary-expressions: From code review nit to ecosystem improvements</title>
    <link href="https://eslint.org/blog/2024/10/code-review-nit-to-ecosystem-improvements/"/>
    <updated>2024-10-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/10/code-review-nit-to-ecosystem-improvements/</id>
    <content type="html">&lt;p&gt;Four years ago, while doing a code review at work, I was surprised that &lt;a href=&quot;https://flow.org/&quot;&gt;Flow&lt;/a&gt; had not warned about an unnecessary null check. Last month, &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/#disallowed-nullish-and-truthy-checks1&quot;&gt;TypeScript 5.6&lt;/a&gt; released with validation rules that disallows useless nullish and truthy checks which uncovered nearly 100 existing bugs in the top 800 TypeScript repos on GitHub.&lt;/p&gt;
&lt;p&gt;The two events are connected because that moment in code review four years ago led me to write &lt;a href=&quot;https://eslint.org/blog/2022/07/interesting-bugs-caught-by-no-constant-binary-expression/&quot;&gt;the &lt;code&gt;no-constant-binary-expressions&lt;/code&gt; rule&lt;/a&gt; which catches a wide variety of bugs. Examples include:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// Expecting empty objects to be falsy&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; foo &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;config &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// Confusing precedence of !&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; foo1 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// Confusing ?? or || precedence&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; foo2 &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; x &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;no-constant-binary-expression&lt;/code&gt; rule, in turn, helped inspire the newly added TypeScript validations.&lt;/p&gt;
&lt;p&gt;Given the protracted timeline and the many intermediate steps, I thought it would be interesting to reflect on how we got here. How did this observation in one code review snowball into a significant positive impact to developers? And how could the snowball continue to grow?&lt;/p&gt;
&lt;p&gt;To answer these questions, it helps to review the timeline of events.&lt;/p&gt;
&lt;h2 id=&quot;timeline&quot; tabindex=&quot;-1&quot;&gt;Timeline&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;May 2020:&lt;/strong&gt; I was reviewing a pull request at work that made a nullable value non-nullable. I noticed that the author had left behind an &lt;code&gt;if&lt;/code&gt; condition that handled the now impossible case where the value was &lt;code&gt;null&lt;/code&gt;. I started to wonder why Flow hadn’t automatically pointed that out.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;May 2020:&lt;/strong&gt; I posted to an internal group asking the Flow team about it. The answer was that Flow, like TypeScript, is not sound. For example &lt;code&gt;arr[x]&lt;/code&gt; is typed as non-nullable but might actually be undefined at runtime. Flow had implemented these checks in the past, but they caused major issues by telling people their null checks were safe to remove when they were not, so they removed the checks. &lt;a href=&quot;https://zacher.com.au/&quot;&gt;Brad Zacher&lt;/a&gt; happened to see the post and chimed in with an observation that a syntactic approach, rather than a type based one, could be safe even if it was less powerful.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;August 2020:&lt;/strong&gt; I implemented the syntactic validation approach as an internal ESLint rule and realized it generalized beyond null checks to all constant comparisons. I ran it in Meta’s mono-repo and found it identified several hundred existing bugs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;October 2020:&lt;/strong&gt; Brad Zacher suggested I propose it as a new core rule in ESLint. &lt;a href=&quot;https://github.com/eslint/eslint/issues/13752&quot;&gt;I did&lt;/a&gt;, and they &lt;a href=&quot;https://github.com/eslint/eslint/issues/13752#issuecomment-729125654&quot;&gt;liked the idea&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;November 2021 - April 2022:&lt;/strong&gt; I &lt;a href=&quot;https://github.com/eslint/eslint/pull/15296&quot;&gt;rewrote the rule for open source&lt;/a&gt;, which took a surprising amount of effort due to different positions on things like JSX and style.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;July 2022:&lt;/strong&gt; I decided to write a blog post about the new rule. The ESLint team was redoing their site at the time and looking for more blog content, so they asked if I wanted to write the &lt;a href=&quot;https://eslint.org/blog/2022/07/interesting-bugs-caught-by-no-constant-binary-expression/&quot;&gt;post on the official blog&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;November 2023:&lt;/strong&gt; The blog post made the &lt;a href=&quot;https://news.ycombinator.com/item?id=38196644&quot;&gt;front page of Hacker News&lt;/a&gt;. The post was likely shared by someone who read a &lt;a href=&quot;https://twitter.com/captbaritone/status/1722290945633443973&quot;&gt;tweet&lt;/a&gt; I posted sharing that it was going to be enabled by default in &lt;code&gt;eslint:recommended&lt;/code&gt; beginning with ESLint v9.0.0.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;April 2024:&lt;/strong&gt; The rule finally ships as enabled by default in &lt;a href=&quot;https://eslint.org/blog/2024/04/eslint-v9.0.0-released/&quot;&gt;ESLint v9.0.0&lt;/a&gt;. This change had to wait for a new major version because enabling a new rule in &lt;code&gt;eslint:recommended&lt;/code&gt; is a breaking change.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;July 2024:&lt;/strong&gt; The TypeScript team, looking to expand upon the idea of checking for a specific type of constant condition, found the blog post and code. They expanded the set of validations they perform to include most of the checks the ESLint rule performs. They found similar results. &lt;a href=&quot;https://github.com/microsoft/TypeScript/pull/59217#issuecomment-2221372781&quot;&gt;94 real errors in the top 800 TS repos&lt;/a&gt;. The success of the ESLint rule gave them confidence to enable the check by default in &lt;code&gt;tsc&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;September 2024:&lt;/strong&gt; &lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/#disallowed-nullish-and-truthy-checks1&quot;&gt;TypeScript 5.6&lt;/a&gt; ships with default validations to disallow constant nullish and truthy checks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;reflections&quot; tabindex=&quot;-1&quot;&gt;Reflections&lt;/h2&gt;
&lt;p&gt;There were a number of key factors that contributed to this small observation in code review helping spur a meaningful ecosystem wide improvement:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Meta’s internal culture empowered me, a random engineer, to have a direct conversation with members of the Flow team. That conversation happened in a venue where Brad Zacher, an ESLint expert, could happen upon it and chime in.&lt;/li&gt;
&lt;li&gt;Meta’s monorepo gave me direct access to a massive codebase which let me easily run early drafts of the rule to assess how impactful the validation would be on a vast amount of real code.&lt;/li&gt;
&lt;li&gt;Meta’s culture of autonomy gave me the freedom to take on a side quest of writing this rule despite it not being part of my team’s responsibility.&lt;/li&gt;
&lt;li&gt;ESLint’s pluggable architecture empowered me to write my own rule and easily deploy it across the whole company without needing to convince any gate keepers.&lt;/li&gt;
&lt;li&gt;The ESLint team’s openness to, and active support of, a new contributor adding a new core rule despite a &lt;a href=&quot;https://eslint.org/docs/latest/contribute/propose-new-rule&quot;&gt;2020 policy&lt;/a&gt; of only accepting new rules if they relate to new language features.&lt;/li&gt;
&lt;li&gt;Active communication about the work initiated by me, and amplified by the ESLint team, in the form of a blog post and tweets. These allowed the TypeScript team to connect the dots between a more specific request they got about disallowing &lt;code&gt;if (/regex/)&lt;/code&gt;, and the broader idea of detecting constant conditions.&lt;/li&gt;
&lt;li&gt;Not being satisfied with just pointing out a useless null check in code review when I suspected that a fundamental solution to that class of problem was possible. Being somewhat obsessive, I wasn’t satisfied until that solution was enabled not just for me, my team, or my company, but for the broader ecosystem.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what%E2%80%99s-next&quot; tabindex=&quot;-1&quot;&gt;What’s Next&lt;/h2&gt;
&lt;p&gt;It’s taken four years for the ripple of Brad’s initial observation on that internal post to reach this point, but I think the ideas here have the potential to resonate even further:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TypeScript and Flow could internally track types which they happen to know are sound, and opportunistically report errors based on that data, allowing checks like this to be performed in many more cases.&lt;/li&gt;
&lt;li&gt;Other unsound languages which previously avoided reporting unnecessary checks for the same reason Flow did could use this same approach to catch logic errors.&lt;/li&gt;
&lt;li&gt;More broadly, dead code elimination is a well understood area of compiler design with many codified techniques and approaches. However, they are nearly always applied as optimizations in the compiler backend. I suspect many of these same dead code elimination techniques could be brought to the front-end of the compiler and used to detect and report bugs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This effort spanned multiple years and multiple organizations.&lt;/p&gt;
&lt;p&gt;As a motivated individual within Meta, a for-profit company, I was able to spark a conversation which spawned an idea. I was then able to leverage ESLint to validate that idea internally. Once validated, the ESLint project, a not-for-profit organization, brought the idea to a large audience via it’s broad adoption, recommended rule set, and blog. With the idea documented and validated at scale, engineers at Microsoft, another for-profit company, were able to bring the validations to an even larger audience via their open source project TypeScript.&lt;/p&gt;
&lt;p&gt;Each organization played a different, but key, role according to its strengths and position. I believe a common thread throughout this process, which enabled this scale of collaboration, was the active socialization of ideas. From asking questions during code review, to asking questions of local experts, to sharing ideas in public blog posts and tweets, each expanding circle of socialization improved the idea and ultimately helped bring it to the broad audience it has reached today.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://zacher.com.au/&quot;&gt;Brad Zacher&lt;/a&gt; for his initial key observation and ongoing encouragement, to &lt;a href=&quot;https://humanwhocodes.com/&quot;&gt;Nicholas C. Zakas&lt;/a&gt; and &lt;a href=&quot;https://github.com/mdjermanovic&quot;&gt;Milos Djermanovic&lt;/a&gt; for significant contributions to the rule during code review, and to &lt;a href=&quot;https://twitter.com/SeaRyanC&quot;&gt;Ryan Cavanaugh&lt;/a&gt; for bringing these same types of validation to the TypeScript ecosystem.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.12.0 released</title>
    <link href="https://eslint.org/blog/2024/10/eslint-v9.12.0-released/"/>
    <updated>2024-10-04T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/10/eslint-v9.12.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;experimental-configuration-file-resolution&quot; tabindex=&quot;-1&quot;&gt;Experimental configuration file resolution&lt;/h3&gt;
&lt;p&gt;One of the big changes in ESLint v9.0.0 was the new config system which switched from looking for config files relative to the file being linted to starting the search from the current working directory. While this dramatically decreased the complexity of config file lookup, it also had an unintended side effect: monorepos could no longer include a separate &lt;code&gt;eslint.config.js&lt;/code&gt; file in each project directory and then run ESLint with one command from the root. To address this, we’re working on a new configuration file resolution algorithm that more closely mirrors how the eslintrc config system worked.&lt;/p&gt;
&lt;p&gt;This new algorithm also starts the search from the file being linted, restoring the monorepo use case and also making it possible to run ESLint from anywhere on any file and get the same results each time. Because this feature is experimental, you’ll need to use the &lt;code&gt;unstable_config_lookup_from_file&lt;/code&gt; feature flag, like this:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;npx eslint &lt;span class=&quot;token parameter variable&quot;&gt;--flag&lt;/span&gt; unstable_config_lookup_from_file&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For more information on this feature, see &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files#experimental-configuration-file-resolution&quot;&gt;Experimental Configuration File Resolution&lt;/a&gt;. For more information on using feature flags, see &lt;a href=&quot;https://eslint.org/docs/latest/flags/&quot;&gt;Feature Flags&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;other-notable-changes&quot; tabindex=&quot;-1&quot;&gt;Other notable changes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/integrate/nodejs-api#ruletester&quot;&gt;&lt;code&gt;RuleTester&lt;/code&gt;&lt;/a&gt; now supports custom &lt;code&gt;before&lt;/code&gt; and &lt;code&gt;after&lt;/code&gt; hooks for test cases.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;complexity&lt;/code&gt; rule has a new option &lt;a href=&quot;https://eslint.org/docs/latest/rules/complexity#variant&quot;&gt;&lt;code&gt;variant&lt;/code&gt;&lt;/a&gt; to support modified cyclomatic complexity.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a6a05321ca34480c780be8c2cb7946e4c299001&quot;&gt;&lt;code&gt;5a6a053&lt;/code&gt;&lt;/a&gt; feat: update to &lt;code&gt;jiti&lt;/code&gt; v2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18954&quot;&gt;#18954&lt;/a&gt;) (Arya Emami)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17a07fb548ecce24b88e8b2b07491c24ed1111a9&quot;&gt;&lt;code&gt;17a07fb&lt;/code&gt;&lt;/a&gt; feat: Hooks for test cases (RuleTester) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18771&quot;&gt;#18771&lt;/a&gt;) (Anna Bocharova)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ff0e51cedaab967b7ce383437f64b4a6df8608d&quot;&gt;&lt;code&gt;2ff0e51&lt;/code&gt;&lt;/a&gt; feat: Implement alternate config lookup (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18742&quot;&gt;#18742&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d174532ae96bcaecf6fd7de78755164378b3a2d&quot;&gt;&lt;code&gt;2d17453&lt;/code&gt;&lt;/a&gt; feat: Implement modified cyclomatic &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;complexity&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18896&quot;&gt;#18896&lt;/a&gt;) (Dmitry Pashkevich)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea380cac6f598c86b25a2726c2783636c4169957&quot;&gt;&lt;code&gt;ea380ca&lt;/code&gt;&lt;/a&gt; fix: Upgrade retry to avoid EMFILE errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18986&quot;&gt;#18986&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fdd631964aee250bc5520770bc1fc3f2f2872813&quot;&gt;&lt;code&gt;fdd6319&lt;/code&gt;&lt;/a&gt; fix: Issues with type definitions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18940&quot;&gt;#18940&lt;/a&gt;) (Arya Emami)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ecbd52291d7c118b77016c6bf1c60b7d263c44f0&quot;&gt;&lt;code&gt;ecbd522&lt;/code&gt;&lt;/a&gt; docs: Mention code explorer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18978&quot;&gt;#18978&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ea4ecc6e3320a74c960cb78acc94c0140d15f55&quot;&gt;&lt;code&gt;7ea4ecc&lt;/code&gt;&lt;/a&gt; docs: Clarifying the Use of Meta Objects (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18697&quot;&gt;#18697&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3e4b2ea4a8f76d4d49345c242f013f49635274f&quot;&gt;&lt;code&gt;d3e4b2e&lt;/code&gt;&lt;/a&gt; docs: Clarify how to exclude &lt;code&gt;.js&lt;/code&gt; files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18976&quot;&gt;#18976&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57232ff3d50412586df094f052b47adb38f8d9ae&quot;&gt;&lt;code&gt;57232ff&lt;/code&gt;&lt;/a&gt; docs: Mention plugin-kit in language docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18973&quot;&gt;#18973&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b80ed007cefee086db1ff17cde9f7dd6690459f0&quot;&gt;&lt;code&gt;b80ed00&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb69ab374c149eb725b2fc5a8f0ff33fd7268a46&quot;&gt;&lt;code&gt;cb69ab3&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7fb0d957c102be499d5358a74928e0ea93913371&quot;&gt;&lt;code&gt;7fb0d95&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/493348a9a5dcca29d7fbbe13c67ce13a7a38413b&quot;&gt;&lt;code&gt;493348a&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87a582c8b537d133c140781aa9e3ff0201a3c10f&quot;&gt;&lt;code&gt;87a582c&lt;/code&gt;&lt;/a&gt; docs: fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/id-match&quot;&gt;&lt;code&gt;id-match&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18944&quot;&gt;#18944&lt;/a&gt;) (Jay)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/555aafd06f6dddc743acff06111dc72dd8ea4c4e&quot;&gt;&lt;code&gt;555aafd&lt;/code&gt;&lt;/a&gt; chore: upgrade to &lt;code&gt;@eslint/js@9.12.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18987&quot;&gt;#18987&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/873ae608c15a0a386f022076b5aab6112b56b59b&quot;&gt;&lt;code&gt;873ae60&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0a5414c30421e5dbe313790502dbf13b9330fef&quot;&gt;&lt;code&gt;d0a5414&lt;/code&gt;&lt;/a&gt; refactor: replace strip-ansi with native module (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18982&quot;&gt;#18982&lt;/a&gt;) (Cristopher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8270299abe777bb80a065d537aa1d4be74be705&quot;&gt;&lt;code&gt;b827029&lt;/code&gt;&lt;/a&gt; chore: Enable JSON5 linting (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18979&quot;&gt;#18979&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f55ca22d94c1b0ff3be323b97949edef8d880b0&quot;&gt;&lt;code&gt;8f55ca2&lt;/code&gt;&lt;/a&gt; chore: Upgrade espree, eslint-visitor-keys, eslint-scope (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18962&quot;&gt;#18962&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1a2725e9c776d6845d94c866c7f7b1fe0315090&quot;&gt;&lt;code&gt;c1a2725&lt;/code&gt;&lt;/a&gt; chore: update dependency mocha to ^10.7.3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18945&quot;&gt;#18945&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint now officially supports linting of JSON and Markdown</title>
    <link href="https://eslint.org/blog/2024/10/eslint-json-markdown-support/"/>
    <updated>2024-10-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/10/eslint-json-markdown-support/</id>
    <content type="html">&lt;p&gt;Back in July we &lt;a href=&quot;https://eslint.org/blog/2024/07/whats-coming-next-for-eslint/&quot;&gt;announced&lt;/a&gt; our
plan for ESLint going forward. Part of that announcement discussed transitioning
ESLint to be a more general-purpose linter that is capable of linting any
language. A lot of the core functionality of ESLint (finding files, parsing
then, reporting problems) is generic, and so we’ve spent the past few months
extracting the JavaScript-specific parts of the core. We’re now happy to share
that this work has paid by allowing ESLint to now lint both JSON and Markdown!&lt;/p&gt;
&lt;h2 id=&quot;json-linting-with-%40eslint%2Fjson&quot; tabindex=&quot;-1&quot;&gt;JSON linting with &lt;code&gt;@eslint/json&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;JSON linting is accomplished using the
&lt;a href=&quot;https://npmjs.com/package/@eslint/json&quot;&gt;&lt;code&gt;@eslint/json&lt;/code&gt;&lt;/a&gt; plugin, which is an
officially supported language plugin. The plugin provides parsing for JSON,
JSONC (JSON with comments), and JSON5. To use the plugin, install it from npm:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; @eslint/json &lt;span class=&quot;token parameter variable&quot;&gt;-D&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then update your configuration file:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; json &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@eslint/json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            json&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// lint JSON files&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;language&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;json/json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;json/no-duplicate-keys&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There are several rules built-in to the plugin, and we’re looking for more suggestions. Have an idea for a rule? &lt;a href=&quot;https://github.com/eslint/json/issues&quot;&gt;Open an issue&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For more information on configuring JSON linting, please check out the &lt;a href=&quot;https://npmjs.com/package/@eslint/json&quot;&gt;README&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;markdown-linting-with-%40eslint%2Fmarkdown&quot; tabindex=&quot;-1&quot;&gt;Markdown linting with &lt;code&gt;@eslint/markdown&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Markdown linting is accomplished using the
&lt;a href=&quot;https://npmjs.com/package/@eslint/markdown&quot;&gt;&lt;code&gt;@eslint/markdown&lt;/code&gt;&lt;/a&gt; plugin, which is the next generation of the &lt;a href=&quot;https://npmjs.com/package/eslint-plugin-markdown&quot;&gt;&lt;code&gt;eslint-plugin-markdown&lt;/code&gt;&lt;/a&gt; plugin that only contained a processor. This new officially supported language plugin features parsing and rules for CommonMark and GitHub-Flavored Markdown. To use the plugin, install it from npm:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; @eslint/markdown &lt;span class=&quot;token parameter variable&quot;&gt;-D&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then update your configuration file:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// eslint.config.js&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; markdown &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@eslint/markdown&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.md&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            markdown&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;language&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;markdown/commonmark&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;markdown/no-html&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;    &lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Similar to the JSON plugin, there are several rules built-in to the plugin, and we’re looking for more suggestions. Have an idea for a rule? &lt;a href=&quot;https://github.com/eslint/markdown/issues&quot;&gt;Open an issue&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For more information on configuring Markdown linting, please check out the &lt;a href=&quot;https://npmjs.com/package/@eslint/markdown&quot;&gt;README&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;creating-custom-rules-and-using-code-explorer&quot; tabindex=&quot;-1&quot;&gt;Creating custom rules and using Code Explorer&lt;/h2&gt;
&lt;p&gt;Both &lt;code&gt;@eslint/json&lt;/code&gt; and &lt;code&gt;@eslint/markdown&lt;/code&gt; parse source code into an AST and then traverse the AST to run rules, just like ESLint does with JavaScript. That means you can write custom rules for JSON and Markdown just like you can for JavaScript. The primary difference is in the AST format. JSON uses the &lt;a href=&quot;https://github.com/humanwhocodes/momoa/&quot;&gt;Momoa AST&lt;/a&gt; while Markdown uses &lt;a href=&quot;https://github.com/syntax-tree/mdast&quot;&gt;mdast&lt;/a&gt;. Because there aren’t a lot of resources out there to help you inspect alternate AST formats, we’re happy to announce the launch of the &lt;a href=&quot;https://explorer.eslint.org/&quot;&gt;Code Explorer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://explorer.eslint.org/&quot;&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2024/code-explorer.png&quot; alt=&quot;ESLint Code Explorer&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Code Explorer allows you to view and explore the AST of different languages to help in creating custom rules. For JSON and Markdown, you’ll get an expandable view of the AST, while JavaScript allows you to see not just the AST but also the scope and code path information that ESLint generates as it parses your code. Going forward, we’ll continue to update Code Explorer with new languages and capabilities designed to help you create custom rules.&lt;/p&gt;
&lt;p&gt;And the best part? Code Explorer is &lt;a href=&quot;https://github.com/eslint/code-explorer&quot;&gt;open source&lt;/a&gt;, so you can help us make it even better.&lt;/p&gt;
&lt;h2 id=&quot;write-your-own-language-plugin&quot; tabindex=&quot;-1&quot;&gt;Write your own language plugin&lt;/h2&gt;
&lt;p&gt;ESLint languages are designed in such a way that they can be included in any plugin using a new &lt;code&gt;languages&lt;/code&gt; key. The &lt;code&gt;@eslint/json&lt;/code&gt; and &lt;code&gt;@eslint/markdown&lt;/code&gt; plugins are intended not only to provide JSON and Markdown linting, respectively, but also as examples of how to create your own languages. You can check out the &lt;a href=&quot;https://eslint.org/docs/latest/extend/languages&quot;&gt;languages documentation&lt;/a&gt; for an overview of how you can create your own language.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Linting languages other than JavaScript has been on the ESLint roadmap for a while, so it’s exciting to reach this milestone. Our long-term goal is to ensure that ESLint can lint any kind of file you might use in a web project, whether that be with officially supported language plugins or with community-written plugins. With JavaScript, JSON, and Markdown, we’re already well on our way towards achieving that goal.&lt;/p&gt;
&lt;p&gt;As a reminder, ESLint is an independent open source project maintained by a group of volunteers in their spare time. If you enjoy using ESLint, please talk to your company about &lt;a href=&quot;https://eslint.org/donate&quot;&gt;sponsoring the project&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.11.1 released</title>
    <link href="https://eslint.org/blog/2024/09/eslint-v9.11.1-released/"/>
    <updated>2024-09-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/09/eslint-v9.11.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Several type packages have been added as &lt;code&gt;dependencies&lt;/code&gt; to fix compilation errors when ESLint is used in TypeScript code.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/20fd91689f2a89643a6f67e900a53552d47ddfe5&quot;&gt;&lt;code&gt;20fd916&lt;/code&gt;&lt;/a&gt; fix: add &lt;code&gt;@eslint/core&lt;/code&gt;, &lt;code&gt;@types/estree&lt;/code&gt;, &amp;amp; &lt;code&gt;@types/json-schema&lt;/code&gt; deps (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18938&quot;&gt;#18938&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27383226b8c5ead6b7cafc017a8ca12a1512a301&quot;&gt;&lt;code&gt;2738322&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;&lt;code&gt;require-atomic-updates&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18937&quot;&gt;#18937&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d71ff3068c3134171346c91f4095dd5908d9c897&quot;&gt;&lt;code&gt;d71ff30&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;&lt;code&gt;object-shorthand&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18935&quot;&gt;#18935&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/561cadc54376fd0a5cc1446c3cd76bfbb6b3ce9d&quot;&gt;&lt;code&gt;561cadc&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-negation&quot;&gt;&lt;code&gt;no-unsafe-negation&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18932&quot;&gt;#18932&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8843656f9b161d97d9dc78db01413029621e266d&quot;&gt;&lt;code&gt;8843656&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle&quot;&gt;&lt;code&gt;no-underscore-dangle&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18931&quot;&gt;#18931&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/92cde5c6da43b6017657e4c596421e3347f3dbc4&quot;&gt;&lt;code&gt;92cde5c&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-shadow&quot;&gt;&lt;code&gt;no-shadow&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18930&quot;&gt;#18930&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3cbe11a9216d1edabd5b85d6f274ca84574bce6&quot;&gt;&lt;code&gt;b3cbe11&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;&lt;code&gt;no-sequences&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18929&quot;&gt;#18929&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/976f77f7f6da591b715b1ce2592f09c2f1160153&quot;&gt;&lt;code&gt;976f77f&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-expressions&quot;&gt;&lt;code&gt;no-unused-expressions&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18933&quot;&gt;#18933&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3eff70963772e9faad4a865aaa4cf3d7dbe700a0&quot;&gt;&lt;code&gt;3eff709&lt;/code&gt;&lt;/a&gt; docs: replace deprecated &lt;code&gt;Linter.FlatConfig&lt;/code&gt; type with &lt;code&gt;Linter.Config&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18941&quot;&gt;#18941&lt;/a&gt;) (Carlos Meira)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df4a859b4cd578a3535a488a665a6e858289f455&quot;&gt;&lt;code&gt;df4a859&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.11.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18943&quot;&gt;#18943&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/36d8095308d8973aa38bb9568121822776a5199d&quot;&gt;&lt;code&gt;36d8095&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.11.0 released</title>
    <link href="https://eslint.org/blog/2024/09/eslint-v9.11.0-released/"/>
    <updated>2024-09-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/09/eslint-v9.11.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-useless-constructor&quot;&gt;no-useless-constructor&lt;/a&gt; rule now provides &lt;a href=&quot;https://eslint.org/docs/latest/use/core-concepts#rule-suggestions&quot;&gt;suggestions&lt;/a&gt; for some of the problems reported by this rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec30c7349e0bc2c37465a036e8c7ea3318ac2328&quot;&gt;&lt;code&gt;ec30c73&lt;/code&gt;&lt;/a&gt; feat: add “eslint/universal” to export &lt;code&gt;Linter&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18883&quot;&gt;#18883&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c591da68d4a96aa28df68f4eff7641f42af82b15&quot;&gt;&lt;code&gt;c591da6&lt;/code&gt;&lt;/a&gt; feat: Add language to types (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18917&quot;&gt;#18917&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/492eb8f34ebbc5c9d1dbfcf4dd06b8dde8d1df74&quot;&gt;&lt;code&gt;492eb8f&lt;/code&gt;&lt;/a&gt; feat: limit the name given to &lt;code&gt;ImportSpecifier&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;&lt;code&gt;id-length&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18861&quot;&gt;#18861&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19c685608d134d9120a129cc80c0ba7f8f016aa3&quot;&gt;&lt;code&gt;19c6856&lt;/code&gt;&lt;/a&gt; feat: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-constructor&quot;&gt;&lt;code&gt;no-useless-constructor&lt;/code&gt;&lt;/a&gt; suggestion (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18799&quot;&gt;#18799&lt;/a&gt;) (Jordan Thomson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a48f8c29b58c27d87dbf202d55a5770d678d37d6&quot;&gt;&lt;code&gt;a48f8c2&lt;/code&gt;&lt;/a&gt; feat: add type &lt;code&gt;FormatterFunction&lt;/code&gt;, update &lt;code&gt;LoadedFormatter&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18872&quot;&gt;#18872&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e5f39b82535f59780ce4be56d01fd1466029c25&quot;&gt;&lt;code&gt;5e5f39b&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-exports&quot;&gt;&lt;code&gt;no-restricted-exports&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18914&quot;&gt;#18914&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f630eb5794ef9fe38e0b8f034287650def634bd&quot;&gt;&lt;code&gt;8f630eb&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-param-reassign&quot;&gt;&lt;code&gt;no-param-reassign&lt;/code&gt;&lt;/a&gt; options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18906&quot;&gt;#18906&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d71578124f14d6da3fa5ab5cc391bb6c9ac3ffcf&quot;&gt;&lt;code&gt;d715781&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;&lt;code&gt;no-extra-boolean-cast&lt;/code&gt;&lt;/a&gt; options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18902&quot;&gt;#18902&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2de5742682ec45e24dca9ca7faaa45330497fca9&quot;&gt;&lt;code&gt;2de5742&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18905&quot;&gt;#18905&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c153084250673b31bed46e3fe6af7a65b4ce8d6f&quot;&gt;&lt;code&gt;c153084&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;&lt;code&gt;no-implicit-coercion&lt;/code&gt;&lt;/a&gt; options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18903&quot;&gt;#18903&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fa11b2ede6e5dc1f55dfe4b9b65d9760828900e8&quot;&gt;&lt;code&gt;fa11b2e&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/no-empty-function&quot;&gt;&lt;code&gt;no-empty-function&lt;/code&gt;&lt;/a&gt; options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18901&quot;&gt;#18901&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a0deed122a9676fab07b903c8d16fbf60b92eadf&quot;&gt;&lt;code&gt;a0deed1&lt;/code&gt;&lt;/a&gt; fix: add missing types for &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;&lt;code&gt;camelcase&lt;/code&gt;&lt;/a&gt; options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18897&quot;&gt;#18897&lt;/a&gt;) (Kristóf Poduszló)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4e570952249d1c4fde59c79a0f49a38490b72c9&quot;&gt;&lt;code&gt;e4e5709&lt;/code&gt;&lt;/a&gt; docs: correct &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-has-own&quot;&gt;&lt;code&gt;prefer-object-has-own&lt;/code&gt;&lt;/a&gt; type definition comment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18924&quot;&gt;#18924&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/91cbd18c70dee2ef73de8d8e43f2c744fd173934&quot;&gt;&lt;code&gt;91cbd18&lt;/code&gt;&lt;/a&gt; docs: add unicode abbreviations in &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18894&quot;&gt;#18894&lt;/a&gt;) (Alix Royere)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/59cfc0f1b3bbb62260602579f79bd1c36ab5a00f&quot;&gt;&lt;code&gt;59cfc0f&lt;/code&gt;&lt;/a&gt; docs: clarify &lt;code&gt;resultsMeta&lt;/code&gt; in &lt;code&gt;LoadedFormatter&lt;/code&gt; type (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18881&quot;&gt;#18881&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/adcc50dbf1fb98c0884f841e2a627796a4490373&quot;&gt;&lt;code&gt;adcc50d&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4edac1a325a832804f76602736a86217b40f69ac&quot;&gt;&lt;code&gt;4edac1a&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/959d360be597d3112b10590018cd52f1d98712d6&quot;&gt;&lt;code&gt;959d360&lt;/code&gt;&lt;/a&gt; build: Support updates to previous major versions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18871&quot;&gt;#18871&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ca21a64ed0f59adb9dadcef2fc8f7248879edbd3&quot;&gt;&lt;code&gt;ca21a64&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.11.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18927&quot;&gt;#18927&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a10f90af35aea9ac555b1f33106fbba1027d774e&quot;&gt;&lt;code&gt;a10f90a&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4e02cc6938f38ad5028bb8ad82f52460a18dea5&quot;&gt;&lt;code&gt;e4e02cc&lt;/code&gt;&lt;/a&gt; refactor: Extract processor logic into ProcessorService (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18818&quot;&gt;#18818&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d4484d9c19e4132f3dee948174a543dbbb5d30f&quot;&gt;&lt;code&gt;6d4484d&lt;/code&gt;&lt;/a&gt; chore: updates for v8.57.1 release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71f37c5bf04afb704232d312cc6c72c957d1c14e&quot;&gt;&lt;code&gt;71f37c5&lt;/code&gt;&lt;/a&gt; refactor: use optional chaining when validating config rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18893&quot;&gt;#18893&lt;/a&gt;) (lucasrmendonca)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c2805f8ee0fb1f27f3e442de248f45e5a98a067&quot;&gt;&lt;code&gt;2c2805f&lt;/code&gt;&lt;/a&gt; chore: Add PR note to all templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18892&quot;&gt;#18892&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b852ce59e6ed56931c080aa46ab548fa57feffc&quot;&gt;&lt;code&gt;7b852ce&lt;/code&gt;&lt;/a&gt; refactor: use &lt;code&gt;Directive&lt;/code&gt; class from &lt;code&gt;@eslint/plugin-kit&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18884&quot;&gt;#18884&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d594ddd2cc9b0c251291ea12fbd14ccd2ee32ac7&quot;&gt;&lt;code&gt;d594ddd&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/core to ^0.6.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18863&quot;&gt;#18863&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78b2421e28f29206fe120ae1b03804b1b79e6324&quot;&gt;&lt;code&gt;78b2421&lt;/code&gt;&lt;/a&gt; chore: Update change.yml (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18882&quot;&gt;#18882&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a416f0a270e922c86e8571e94a30fc87d72fa873&quot;&gt;&lt;code&gt;a416f0a&lt;/code&gt;&lt;/a&gt; chore: enable &lt;code&gt;$ExpectType&lt;/code&gt; comments in .ts files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18869&quot;&gt;#18869&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.57.1 released</title>
    <link href="https://eslint.org/blog/2024/09/eslint-v8.57.1-released/"/>
    <updated>2024-09-16T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/09/eslint-v8.57.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Notable bug fixes related to the new config system (&lt;code&gt;eslint.config.js&lt;/code&gt;):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Config &lt;code&gt;name&lt;/code&gt; property can now also be used with global ignores.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--no-ignore&lt;/code&gt; no longer applies to non-global ignores.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;FlatESLint#lintText()&lt;/code&gt; method will now respect the &lt;code&gt;fixTypes&lt;/code&gt; option when it is specified.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This version also improves configuration error messages by including the &lt;code&gt;name&lt;/code&gt; property (if specified on the config object that caused the error), or index in case of non-object elements in the config array.&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a19072f9f17ea8266bc66193e5f8a4bf1368835d&quot;&gt;&lt;code&gt;a19072f&lt;/code&gt;&lt;/a&gt; fix: add logic to handle fixTypes in the lintText() method (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18900&quot;&gt;#18900&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/04c718865b75a95ebfc4d429b8c9fad773228624&quot;&gt;&lt;code&gt;04c7188&lt;/code&gt;&lt;/a&gt; fix: Don’t lint same file multiple times (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18899&quot;&gt;#18899&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87ec3c49dd23ab8892bc19aae711292d03a73483&quot;&gt;&lt;code&gt;87ec3c4&lt;/code&gt;&lt;/a&gt; fix: do not throw when defining a global named &lt;code&gt;__defineSetter__&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18898&quot;&gt;#18898&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60a12676878c3fe0623c3b93e7565f003daac5f0&quot;&gt;&lt;code&gt;60a1267&lt;/code&gt;&lt;/a&gt; fix: Provide helpful error message for nullish configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18889&quot;&gt;#18889&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a0dea8ee01cc4c1b65927562afd3a46418573a02&quot;&gt;&lt;code&gt;a0dea8e&lt;/code&gt;&lt;/a&gt; fix: allow &lt;code&gt;name&lt;/code&gt; in global ignores, fix &lt;code&gt;--no-ignore&lt;/code&gt; for non-global (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18875&quot;&gt;#18875&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3836bb48d3f12058ec36c2edf2ca1b50eb1c923b&quot;&gt;&lt;code&gt;3836bb4&lt;/code&gt;&lt;/a&gt; fix: do not crash on error in &lt;code&gt;fs.walk&lt;/code&gt; filter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18886&quot;&gt;#18886&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2dec349199df4cba1554172ad38163cc09ad0a52&quot;&gt;&lt;code&gt;2dec349&lt;/code&gt;&lt;/a&gt; fix: skip processor code blocks that match only universal patterns (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18880&quot;&gt;#18880&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a5add41e80941c7253b56b02815ac316e583006&quot;&gt;&lt;code&gt;6a5add4&lt;/code&gt;&lt;/a&gt; docs: v8.x Add EOL banner (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18744&quot;&gt;#18744&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b034575978e3bb57e2edca0d2dc547c7a3abc928&quot;&gt;&lt;code&gt;b034575&lt;/code&gt;&lt;/a&gt; docs: v8.x add version support page to the dropdown (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18731&quot;&gt;#18731&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/760ef7d9dbd7b615ccbdc20f02cbc05dbabbada8&quot;&gt;&lt;code&gt;760ef7d&lt;/code&gt;&lt;/a&gt; docs: v8.x add version support page in the side navbar (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18740&quot;&gt;#18740&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/428b7ea0a9c086b7d8afa0adb629b09d7347d41d&quot;&gt;&lt;code&gt;428b7ea&lt;/code&gt;&lt;/a&gt; docs: Add Powered by Algolia label to the search (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18658&quot;&gt;#18658&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c68c07ff44c180952e93c6f2c860079db6291b29&quot;&gt;&lt;code&gt;c68c07f&lt;/code&gt;&lt;/a&gt; docs: version selectors synchronization (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18265&quot;&gt;#18265&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/35d366aed6e8ab0cfa8f9c9bac4656e3784c11f6&quot;&gt;&lt;code&gt;35d366a&lt;/code&gt;&lt;/a&gt; build: Support updates to previous major versions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18870&quot;&gt;#18870&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/140ec4569fda5a974b6964242b0b2991828a5567&quot;&gt;&lt;code&gt;140ec45&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.57.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18913&quot;&gt;#18913&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bcdfc04a69c53dbf1fc3d38603fe0a796bf2274d&quot;&gt;&lt;code&gt;bcdfc04&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3f6ce8d6b74aba0d645448e898f271825eeb9630&quot;&gt;&lt;code&gt;3f6ce8d&lt;/code&gt;&lt;/a&gt; chore: pin vite-plugin-commonjs@0.10.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18910&quot;&gt;#18910&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f0754979527d05cd0abb2ea7ab1c3563fb4a361&quot;&gt;&lt;code&gt;9f07549&lt;/code&gt;&lt;/a&gt; chore: ignore &lt;code&gt;/docs/v8.x&lt;/code&gt; in link checker (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18660&quot;&gt;#18660&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Version support policy and ESLint v8.x end of life</title>
    <link href="https://eslint.org/blog/2024/09/eslint-v8-eol-version-support/"/>
    <updated>2024-09-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/09/eslint-v8-eol-version-support/</id>
    <content type="html">&lt;p&gt;For ESLint’s entire 11 year existence, we’ve only maintained one major release line at a time. This was both for practical reasons (limited team bandwidth) and technical reasons (our infrastructure was built to assume just one branch). Unfortunately, we haven’t been good at communicating our version support policy, which has led to confusion and frustration when we do a major release.&lt;/p&gt;
&lt;h2 id=&quot;adopting-a-formal-version-support-policy&quot; tabindex=&quot;-1&quot;&gt;Adopting a formal version support policy&lt;/h2&gt;
&lt;p&gt;The Technical Steering Committee has adopted a formal &lt;a href=&quot;https://eslint.org/version-support&quot;&gt;version support policy&lt;/a&gt; that explains our approach to supporting major release lines. In general, a major release line may be in one of the following statuses:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Current&lt;/strong&gt; - Receives active maintenance and development from the ESLint team. A release line is considered current when prerelease work begins.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maintenance&lt;/strong&gt; - Receives critical bug fixes, including security issues, and compatibility fixes to ensure interoperability between major release lines. There is no backporting of other fixes or features from the current release line. A release line falls into maintenance status once work begins on the next major release and stays there until six months after the general availability of the current release line.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;End of Life (EOL)&lt;/strong&gt; - When a release line falls out of maintenance mode it receives no further updates from the ESLint team.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read the &lt;a href=&quot;https://eslint.org/version-support&quot;&gt;full version support policy&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2 id=&quot;commercial-support-from-herodevs-after-eol&quot; tabindex=&quot;-1&quot;&gt;Commercial support from HeroDevs after EOL&lt;/h2&gt;
&lt;p&gt;Because we realize not everyone can upgrade to a new major release within six months, &lt;a href=&quot;https://www.herodevs.com/blog-posts/herodevs-partners-with-eslint-to-launch-eslint-nes-for-legacy-javascript-support&quot;&gt;we’ve partnered with HeroDevs&lt;/a&gt; to provide commercial support for EOL release lines. HeroDevs provides drop-in replacements for EOL ESLint packages that keeps your experience seamless.&lt;/p&gt;
&lt;p&gt;Additionally, HeroDevs provides never-ending support for these drop-in replacements, meaning that they’ll continue to receive critical security fixes.&lt;/p&gt;
&lt;h2 id=&quot;eslint-v8.x-end-of-life-is-october-5%2C-2024&quot; tabindex=&quot;-1&quot;&gt;ESLint v8.x end of life is October 5, 2024&lt;/h2&gt;
&lt;p&gt;Following our policy, that puts the end of life for ESLint v8.x on October 5, 2024. After that point, the ESLint team will no longer make changes or publish releases in the v8.x release line. If you need support for v8.x after EOL, please contact &lt;a href=&quot;https://www.herodevs.com/support/eslint-nes?utm_source=ESLintWebsite&amp;amp;utm_medium=ESLintWebsite&amp;amp;utm_campaign=ESLintNES&amp;amp;utm_id=ESLintNES&quot;&gt;HeroDevs&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;We hope by adopting a formal version support policy that we’re eliminating the confusion we’ve traditionally had around major releases. We tried to balance the needs of our users with the limitations the team has around availability. ESLint is maintained by a team of volunteers who work in their spare time, and maintaining multiple release lines on our own for an extended period of time is just not possible. That said, we recognize that users need some time to upgrade, and we want to make that as smooth as possible.&lt;/p&gt;
&lt;p&gt;By partnering with HeroDevs, we also hope that we’ve made it easier for those who need to stay on an EOL version to get the support that they need.&lt;/p&gt;
&lt;p&gt;We’re grateful for the feedback from the community around the v9.0.0 release, and for the help of our friends at HeroDevs who provided guidance around creating our version support policy.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.10.0 released</title>
    <link href="https://eslint.org/blog/2024/09/eslint-v9.10.0-released/"/>
    <updated>2024-09-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/09/eslint-v9.10.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;types-now-included&quot; tabindex=&quot;-1&quot;&gt;Types now included&lt;/h3&gt;
&lt;p&gt;We’ve been receiving complaints about the &lt;a href=&quot;https://www.npmjs.com/package/@types/eslint&quot;&gt;&lt;code&gt;@types/eslint&lt;/code&gt;&lt;/a&gt; package not being updated after the v9 release. While we did do an initial update to the package for v9, it quickly became apparent that regular updates to that package could not be accomplished in a timely manner. Ultimately, we decided that the only way for us to provide the type of experience we want for ESLint is to take complete ownership of the type definitions.&lt;/p&gt;
&lt;p&gt;As a result, beginning with this release, the &lt;code&gt;eslint&lt;/code&gt; package now publishes its own types. To start, we’ve copied the type definitions from &lt;code&gt;@types/eslint&lt;/code&gt; in order to provide a smooth transition. (There was one bug in the types that we fixed, but otherwise it’s the same type definitions.) Going forward, we’ll continue to iterate and improve the type definitions as part of our regular release cycle.&lt;/p&gt;
&lt;p&gt;We’re grateful to everyone who contributed types to the &lt;code&gt;@types/eslint&lt;/code&gt; package at a time when we weren’t ready to take that work on.&lt;/p&gt;
&lt;h3 id=&quot;other-notable-changes&quot; tabindex=&quot;-1&quot;&gt;Other notable changes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;require-unicode-regexp&lt;/code&gt; rule can now enforce usage of the &lt;code&gt;v&lt;/code&gt; flag with regular expressions. Check out the new &lt;a href=&quot;https://eslint.org/docs/latest/rules/require-unicode-regexp#options&quot;&gt;option &lt;code&gt;requireFlag&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;This release also fixes problems found in the &lt;a href=&quot;https://eslint.org/docs/latest/rules/id-length&quot;&gt;&lt;code&gt;id-length&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-invalid-regexp&quot;&gt;&lt;code&gt;no-invalid-regexp&lt;/code&gt;&lt;/a&gt; rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/301b90df0c032c62d00ba377fefadc5c99b55bf4&quot;&gt;&lt;code&gt;301b90d&lt;/code&gt;&lt;/a&gt; feat: Add types (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18854&quot;&gt;#18854&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bcf0df55c2c151d018083dd126e55dfdb62a3e78&quot;&gt;&lt;code&gt;bcf0df5&lt;/code&gt;&lt;/a&gt; feat: limit namespace import identifier in &lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;id-length&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18849&quot;&gt;#18849&lt;/a&gt;) (ChaedongIm)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/45c18e108efd23b4ed2d6bb55e4e2f92620d7f09&quot;&gt;&lt;code&gt;45c18e1&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;requireFlag&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/require-unicode-regexp&quot;&gt;&lt;code&gt;require-unicode-regexp&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18836&quot;&gt;#18836&lt;/a&gt;) (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/183b459b72be5c1e359985b1584f73421dfb1484&quot;&gt;&lt;code&gt;183b459&lt;/code&gt;&lt;/a&gt; feat: add error message for duplicate flags in &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;&lt;code&gt;no-invalid-regexp&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18837&quot;&gt;#18837&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c69b40667a288bed1290b34b37387dc671295bb0&quot;&gt;&lt;code&gt;c69b406&lt;/code&gt;&lt;/a&gt; feat: report duplicate allowed flags in &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;&lt;code&gt;no-invalid-regexp&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18754&quot;&gt;#18754&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bee0e7a5f55717d029258c99864df356c9745692&quot;&gt;&lt;code&gt;bee0e7a&lt;/code&gt;&lt;/a&gt; docs: update README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18865&quot;&gt;#18865&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d80b5952056edf1a17bf4bfae30270fc7e7a9bd&quot;&gt;&lt;code&gt;5d80b59&lt;/code&gt;&lt;/a&gt; docs: specify that &lt;code&gt;ruleId&lt;/code&gt; can be &lt;code&gt;null&lt;/code&gt; in custom formatter docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18857&quot;&gt;#18857&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/156b1c3037b616ff13eced5652f94784ebbe0e89&quot;&gt;&lt;code&gt;156b1c3&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6fdef9df4b1d4d07bb84c38d56ab2595fbb7e11&quot;&gt;&lt;code&gt;f6fdef9&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a20c870744824943e213e08ca52514ac10882fdb&quot;&gt;&lt;code&gt;a20c870&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90e699bd9d76139ed0aeb3894839b2d4856b4a72&quot;&gt;&lt;code&gt;90e699b&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24c3ff7d0c0bd8b98994e04f0870cbec94c5801d&quot;&gt;&lt;code&gt;24c3ff7&lt;/code&gt;&lt;/a&gt; chore: upgrade to @eslint/js@9.10.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18866&quot;&gt;#18866&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ebdde1cf2793b12c2e9417ce428ae3326ce8ea3&quot;&gt;&lt;code&gt;1ebdde1&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e8fc5bd3daae5aa52f90466236f467a075a10c91&quot;&gt;&lt;code&gt;e8fc5bd&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/core to ^0.5.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18848&quot;&gt;#18848&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/343f99216096f1db955766870e35d92d5a121448&quot;&gt;&lt;code&gt;343f992&lt;/code&gt;&lt;/a&gt; refactor: don’t use &lt;code&gt;node.value&lt;/code&gt; when removing unused directives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18835&quot;&gt;#18835&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3db18b0b6733aa1d083bf55967735e5ff4195c6c&quot;&gt;&lt;code&gt;3db18b0&lt;/code&gt;&lt;/a&gt; refactor: Extract FileContext into class (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18831&quot;&gt;#18831&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/931d650b3754c4323a19f6d259a96a5098c7c3eb&quot;&gt;&lt;code&gt;931d650&lt;/code&gt;&lt;/a&gt; refactor: Use @eslint/plugin-kit (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18822&quot;&gt;#18822&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed5cf0c6a91032ca51a867e619c9dc7bc70ea554&quot;&gt;&lt;code&gt;ed5cf0c&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/json to ^0.4.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18829&quot;&gt;#18829&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d1f0831bac173fe3e6e81ff95c5abdbf95b02b65&quot;&gt;&lt;code&gt;d1f0831&lt;/code&gt;&lt;/a&gt; chore: added missing ids (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18817&quot;&gt;#18817&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec928136576572a6841d238b7e41ac976d27c687&quot;&gt;&lt;code&gt;ec92813&lt;/code&gt;&lt;/a&gt; refactor: Config class (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18763&quot;&gt;#18763&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Trunk becomes ESLint gold sponsor</title>
    <link href="https://eslint.org/blog/2024/09/trunk-gold-sponsor-eslint/"/>
    <updated>2024-09-04T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/09/trunk-gold-sponsor-eslint/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog-covers/sponsorship-trunk.png&quot; alt=&quot;Trunk Donates to ESLint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We are happy to share that &lt;a href=&quot;https://trunk.io/&quot;&gt;Trunk&lt;/a&gt; has become an ESLint gold sponsor, donating $1,000 each month for the ongoing maintenance and development of ESLint! Trunk is a suite of tools aimed at making developers more effective, including &lt;a href=&quot;https://trunk.io/code-quality&quot;&gt;Code Quality&lt;/a&gt; that integrates ESLint directly, and &lt;a href=&quot;https://trunk.io/merge-queue&quot;&gt;Merge Queue&lt;/a&gt;, with more tools in development.&lt;/p&gt;
&lt;p&gt;Here’s what the folks at Trunk had to say about ESLint:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;ESLint is a core part of the Trunk Code Quality plugin ecosystem. It’s the most popular linter plugin and is enabled by default on all JS and TS projects running Code Quality. ESLint also runs on all of Trunk’s Typescript source code.&lt;/p&gt;
&lt;p&gt;Code Quality, as a metalinter, is built on top of great open-source linters like ESLint. Sponsoring ESLint and helping ESLint leverage Trunk Code Quality on their open-source repo is an excellent way for us to give back.&amp;quot;&lt;/p&gt;
&lt;p&gt;– David Apirian, Trunk Founder&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The ESLint team and the Trunk team worked together over the past few months to integrate &lt;a href=&quot;https://trunk.io/blog/improving-linting-experience-in-eslint-s-open-source-repo-with-trunk-code-quality&quot;&gt;Code Quality into the ESLint repository&lt;/a&gt;, where it now runs ESLint on itself, as well as several other linters. Throughout this process, we’ve worked to ensure that ESLint and Code Quality work well together across a variety of scenarios.&lt;/p&gt;
&lt;p&gt;ESLint is grateful for the support of the Trunk team as they used ESLint in their commercial products. Donations from companies like Trunk allow ESLint to pay contributors for ongoing maintenance and development.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.9.1 released</title>
    <link href="https://eslint.org/blog/2024/08/eslint-v9.9.1-released/"/>
    <updated>2024-08-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/08/eslint-v9.9.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/integrate/nodejs-api#-eslintlinttextcode-options&quot;&gt;&lt;code&gt;lintText()&lt;/code&gt;&lt;/a&gt; method will now respect the &lt;code&gt;fixTypes&lt;/code&gt; option when it is specified.&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9bde90c2edb6800c7f6428c5550ff00fff44ab02&quot;&gt;&lt;code&gt;9bde90c&lt;/code&gt;&lt;/a&gt; fix: add logic to handle &lt;code&gt;fixTypes&lt;/code&gt; in &lt;code&gt;lintText()&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18736&quot;&gt;#18736&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4840930b9d8b6aa3578fe234180425e9060ceeca&quot;&gt;&lt;code&gt;4840930&lt;/code&gt;&lt;/a&gt; docs: Update README with version support and clean up content (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18804&quot;&gt;#18804&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f61f40d8a68b27ad1ff96c019ac41d4e958961a4&quot;&gt;&lt;code&gt;f61f40d&lt;/code&gt;&lt;/a&gt; docs: Update globals examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18805&quot;&gt;#18805&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/241fcea48abe1c63f22b31be4bd75b6039768a85&quot;&gt;&lt;code&gt;241fcea&lt;/code&gt;&lt;/a&gt; docs: Use and define languages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18795&quot;&gt;#18795&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5dbdd63dc83428447e25f1fc1d05d8a69e3b006a&quot;&gt;&lt;code&gt;5dbdd63&lt;/code&gt;&lt;/a&gt; docs: eslint-plugin-markdown -&amp;gt; @eslint/markdown (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18797&quot;&gt;#18797&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c6c8ddd3130bbfec98ef817e4647faf19b34c85c&quot;&gt;&lt;code&gt;c6c8ddd&lt;/code&gt;&lt;/a&gt; docs: update links to eslint-visitor-keys repo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18796&quot;&gt;#18796&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f981d054ed935ef9844b6f76d4ce90ebb345b66f&quot;&gt;&lt;code&gt;f981d05&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b516974713ada28c75f1e21599fc0cec13a8b321&quot;&gt;&lt;code&gt;b516974&lt;/code&gt;&lt;/a&gt; docs: update links to &lt;code&gt;eslint/js&lt;/code&gt; repo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18781&quot;&gt;#18781&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb7a3f5df5f661bcd96e483558da66eafeb4b954&quot;&gt;&lt;code&gt;fb7a3f5&lt;/code&gt;&lt;/a&gt; docs: update note for package managers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18779&quot;&gt;#18779&lt;/a&gt;) (Jay)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0c34d04b1ac1e56609209db2f9b18a6c05a198d&quot;&gt;&lt;code&gt;b0c34d0&lt;/code&gt;&lt;/a&gt; chore: upgrade to @eslint/js@9.9.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18809&quot;&gt;#18809&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd5a0daa24b7ab019c42d64da478c84cc4d32c34&quot;&gt;&lt;code&gt;cd5a0da&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1126423db08a29a6cdf39626110fd29186785f0&quot;&gt;&lt;code&gt;e112642&lt;/code&gt;&lt;/a&gt; refactor: Extract parsing logic from Linter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18790&quot;&gt;#18790&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f68a851db4db4eb6ff537345e7d6c26434950f1&quot;&gt;&lt;code&gt;0f68a85&lt;/code&gt;&lt;/a&gt; chore: use eslint-plugin-yml on yaml files only (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18801&quot;&gt;#18801&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8d1b3c2324cdada4fe1d8799f4f517c1585a001&quot;&gt;&lt;code&gt;f8d1b3c&lt;/code&gt;&lt;/a&gt; chore: update dependencies for browser tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18794&quot;&gt;#18794&lt;/a&gt;) (Christian Bromann)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aed262407918406c19d43b8d54070fa93508782b&quot;&gt;&lt;code&gt;aed2624&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/config-array to ^0.18.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18788&quot;&gt;#18788&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c291283dc29dcfdae585d9878e0fb8ab0d68c43&quot;&gt;&lt;code&gt;5c29128&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/core to ^0.4.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18789&quot;&gt;#18789&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d66fb2b53ded440180feef526b1211673c40e88&quot;&gt;&lt;code&gt;5d66fb2&lt;/code&gt;&lt;/a&gt; chore: migrate linting workflow to use trunk check meta-linter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18643&quot;&gt;#18643&lt;/a&gt;) (Chris Clearwater)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf96855d7c181648cb0a0e8faf77d707ddd4725f&quot;&gt;&lt;code&gt;bf96855&lt;/code&gt;&lt;/a&gt; chore: add ids to github issue templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18775&quot;&gt;#18775&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.9.0 released</title>
    <link href="https://eslint.org/blog/2024/08/eslint-v9.9.0-released/"/>
    <updated>2024-08-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/08/eslint-v9.9.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some of the key changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;experimental-typescript-configuration-files&quot; tabindex=&quot;-1&quot;&gt;Experimental TypeScript configuration files&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/aryaemami59&quot;&gt;Arya Emami&lt;/a&gt; landed experimental support for TypeScript configuration files. Specifically, you can now use &lt;code&gt;eslint.config.ts&lt;/code&gt;, &lt;code&gt;eslint.config.mts&lt;/code&gt;, and &lt;code&gt;eslint.config.cts&lt;/code&gt; files as your configuration files. Because this feature is experimental, you’ll need to use the &lt;code&gt;unstable_ts_config&lt;/code&gt; feature flag:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;npx eslint &lt;span class=&quot;token parameter variable&quot;&gt;--flag&lt;/span&gt; unstable_ts_config&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For Node.js, you’ll need to manually install &lt;a href=&quot;https://npmjs.com/package/jiti&quot;&gt;&lt;code&gt;jiti&lt;/code&gt;&lt;/a&gt;, which provides the TypeScript-to-JavaScript functionality; for Deno and Bun, no additional dependency is necessary. (When &lt;a href=&quot;https://nodejs.org/api/typescript.html#type-stripping&quot;&gt;TypeScript type stripping&lt;/a&gt; lands as stable in Node.js, you also won’t need an additional dependency in Node.js)&lt;/p&gt;
&lt;p&gt;For more information on this feature, see &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files#typescript-configuration-files&quot;&gt;TypeScript Configuration Files&lt;/a&gt;. For more information on using feature flags, see &lt;a href=&quot;https://eslint.org/docs/latest/flags/&quot;&gt;Feature Flags&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;other-notable-changes&quot; tabindex=&quot;-1&quot;&gt;Other notable changes&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/require-await&quot;&gt;&lt;code&gt;require-await&lt;/code&gt;&lt;/a&gt; rule now suggests to remove possibly unnecessary usages of the &lt;code&gt;async&lt;/code&gt; keyword.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41d02066935b987d2e3b13a08680cc74d7067986&quot;&gt;&lt;code&gt;41d0206&lt;/code&gt;&lt;/a&gt; feat: Add support for TS config files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18134&quot;&gt;#18134&lt;/a&gt;) (Arya Emami)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a4eaf921543b1cd5d1df4ea9dec02fab396af2a&quot;&gt;&lt;code&gt;3a4eaf9&lt;/code&gt;&lt;/a&gt; feat: add suggestion to &lt;a href=&quot;https://eslint.org/docs/rules/require-await&quot;&gt;&lt;code&gt;require-await&lt;/code&gt;&lt;/a&gt; to remove &lt;code&gt;async&lt;/code&gt; keyword (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18716&quot;&gt;#18716&lt;/a&gt;) (Dave)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9fe068c60db466277a785434496a8f90a9090bed&quot;&gt;&lt;code&gt;9fe068c&lt;/code&gt;&lt;/a&gt; docs: how to author plugins with configs that extend other configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18753&quot;&gt;#18753&lt;/a&gt;) (Alec Gibson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/48117b27e98639ffe7e78a230bfad9a93039fb7f&quot;&gt;&lt;code&gt;48117b2&lt;/code&gt;&lt;/a&gt; docs: add version support page in the side navbar (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18738&quot;&gt;#18738&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fec2951d58c704c57bea7e89ffde119e4dc621e3&quot;&gt;&lt;code&gt;fec2951&lt;/code&gt;&lt;/a&gt; docs: add version support page to the dropdown (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18730&quot;&gt;#18730&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38a0661872dd6f1db2f53501895c58e8cf4e8064&quot;&gt;&lt;code&gt;38a0661&lt;/code&gt;&lt;/a&gt; docs: Fix typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18735&quot;&gt;#18735&lt;/a&gt;) (Zaina Al Habash)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c32a9e23c270d83bd8b2649e78aabb76992928e&quot;&gt;&lt;code&gt;3c32a9e&lt;/code&gt;&lt;/a&gt; docs: Update yarn command for creating ESLint config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18739&quot;&gt;#18739&lt;/a&gt;) (Temitope Ogunleye)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9ac978de629c9a702febcf478a743c5ab11fcf6&quot;&gt;&lt;code&gt;f9ac978&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/461b2c35786dc5fd5e146f370bdcafd32938386f&quot;&gt;&lt;code&gt;461b2c3&lt;/code&gt;&lt;/a&gt; chore: upgrade to &lt;code&gt;@eslint/js@9.9.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18765&quot;&gt;#18765&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/59dba1b3404391f5d968be578f0205569d5d41b2&quot;&gt;&lt;code&gt;59dba1b&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fea8563d3372a663aa7a1a676290c34cfb8452ba&quot;&gt;&lt;code&gt;fea8563&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/core to ^0.3.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18724&quot;&gt;#18724&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aac191e6701495666c264f71fc440207ea19251f&quot;&gt;&lt;code&gt;aac191e&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/json to ^0.3.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18760&quot;&gt;#18760&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b97fa051375d1a4592faf251c783691d0b0b9ab9&quot;&gt;&lt;code&gt;b97fa05&lt;/code&gt;&lt;/a&gt; chore: update wdio dependencies for more stable tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18759&quot;&gt;#18759&lt;/a&gt;) (Christian Bromann)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.8.0 released</title>
    <link href="https://eslint.org/blog/2024/07/eslint-v9.8.0-released/"/>
    <updated>2024-07-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/07/eslint-v9.8.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ignoring the directory where ESLint runs is no longer possible. Previously, a global &lt;code&gt;ignores&lt;/code&gt; pattern like &lt;code&gt;&amp;quot;/&amp;quot;&lt;/code&gt; would ignore the entire base directory.&lt;/li&gt;
&lt;li&gt;The feature flags specification has been updated to forbid the usage of &lt;a href=&quot;https://eslint.org/docs/latest/flags#inactive-flags&quot;&gt;inactive flags&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13d0bd371eb8eb4aa1601c8727212a62ab923d0e&quot;&gt;&lt;code&gt;13d0bd3&lt;/code&gt;&lt;/a&gt; feat: Add and use SourceCode#getLoc/getRange (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18703&quot;&gt;#18703&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab0ff2755d6950d7e7fb92944771c1c30f933e02&quot;&gt;&lt;code&gt;ab0ff27&lt;/code&gt;&lt;/a&gt; fix: Throw error when invalid flags passed (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18705&quot;&gt;#18705&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/70dc80337328338f3811040e3f1a1bd5674ecbd2&quot;&gt;&lt;code&gt;70dc803&lt;/code&gt;&lt;/a&gt; fix: &lt;code&gt;basePath&lt;/code&gt; directory can never be ignored (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18711&quot;&gt;#18711&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/282df1aef3c3e62f2617c6c2944944510f287a07&quot;&gt;&lt;code&gt;282df1a&lt;/code&gt;&lt;/a&gt; docs: Add system theme option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18617&quot;&gt;#18617&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53b1ff047948e36682fade502c949f4e371e53cd&quot;&gt;&lt;code&gt;53b1ff0&lt;/code&gt;&lt;/a&gt; docs: Debug config docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18698&quot;&gt;#18698&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7016a50d88011f279d52b9355a5662e561c414c&quot;&gt;&lt;code&gt;a7016a5&lt;/code&gt;&lt;/a&gt; docs: fix search input stylings (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18682&quot;&gt;#18682&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/45144243f3b5762bd8e19e41749a7d330a723ada&quot;&gt;&lt;code&gt;4514424&lt;/code&gt;&lt;/a&gt; build: Enable JSON linting (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18681&quot;&gt;#18681&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/deee4480def929cfa7f5b75f315d84f23eaba592&quot;&gt;&lt;code&gt;deee448&lt;/code&gt;&lt;/a&gt; chore: upgrade to &lt;code&gt;@eslint/js@9.8.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18720&quot;&gt;#18720&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4aaf2b39ba3659aff0c769de4ccefa3d5379ff93&quot;&gt;&lt;code&gt;4aaf2b3&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e1a627a6784380ca7e7670e336bbe9630da2da1&quot;&gt;&lt;code&gt;8e1a627&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/core to ^0.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18700&quot;&gt;#18700&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.7.0 released</title>
    <link href="https://eslint.org/blog/2024/07/eslint-v9.7.0-released/"/>
    <updated>2024-07-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/07/eslint-v9.7.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ESLint v9.7.0 supports ECMAScript 2025 &lt;a href=&quot;https://github.com/tc39/ecma262/pull/2721&quot;&gt;duplicate capturing groups&lt;/a&gt; in regular expressions in its core rules.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; rule has a new option &lt;code&gt;regex&lt;/code&gt; to specify modules using a regular expression pattern.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7bd98398f112da020eddcda2c26cf4cc563af004&quot;&gt;&lt;code&gt;7bd9839&lt;/code&gt;&lt;/a&gt; feat: add support for es2025 duplicate named capturing groups (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18630&quot;&gt;#18630&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1381394a75b5902ce588455765a3919e2f138a7a&quot;&gt;&lt;code&gt;1381394&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;regex&lt;/code&gt; option in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18622&quot;&gt;#18622&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14e9f81ccdb51d2b915b68f442d48ced0a691646&quot;&gt;&lt;code&gt;14e9f81&lt;/code&gt;&lt;/a&gt; fix: destructuring in catch clause in &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18636&quot;&gt;#18636&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f416db680ad01716a769296085bf3eb93f76424&quot;&gt;&lt;code&gt;9f416db&lt;/code&gt;&lt;/a&gt; docs: Add Powered by Algolia label to the search. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18633&quot;&gt;#18633&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c8d26cb4a2f9d89bfc1914167d3e9f1d3314ffe7&quot;&gt;&lt;code&gt;c8d26cb&lt;/code&gt;&lt;/a&gt; docs: Open JS Foundation -&amp;gt; OpenJS Foundation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18649&quot;&gt;#18649&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e79ac76f44b34c24a3e92c20713fbafe1dcbae2&quot;&gt;&lt;code&gt;6e79ac7&lt;/code&gt;&lt;/a&gt; docs: &lt;code&gt;loadESLint&lt;/code&gt; does not support option &lt;code&gt;cwd&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18641&quot;&gt;#18641&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/793b7180119e7e440d685defb2ee01597574ef1e&quot;&gt;&lt;code&gt;793b718&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.7.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18680&quot;&gt;#18680&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ed6f9a4db702bbad941422f456451a8dba7a450&quot;&gt;&lt;code&gt;7ed6f9a&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7bcda760369c44d0f1131fccaaf1ccfed5af85f1&quot;&gt;&lt;code&gt;7bcda76&lt;/code&gt;&lt;/a&gt; refactor: Add type references (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18652&quot;&gt;#18652&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51bf57c493a65baeee3a935f2d0e52e27271fb48&quot;&gt;&lt;code&gt;51bf57c&lt;/code&gt;&lt;/a&gt; chore: add tech sponsors through actions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18624&quot;&gt;#18624&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6320732c3e2a52a220552e348108c53c60f9ef7a&quot;&gt;&lt;code&gt;6320732&lt;/code&gt;&lt;/a&gt; refactor: don’t use &lt;code&gt;parent&lt;/code&gt; property in &lt;code&gt;NodeEventGenerator&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18653&quot;&gt;#18653&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e6d6405c3ee774c2e716a3453ede9696ced1be7&quot;&gt;&lt;code&gt;9e6d640&lt;/code&gt;&lt;/a&gt; refactor: move “Parsing error” prefix adding to Linter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18650&quot;&gt;#18650&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>What&#39;s coming next for ESLint</title>
    <link href="https://eslint.org/blog/2024/07/whats-coming-next-for-eslint/"/>
    <updated>2024-07-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/07/whats-coming-next-for-eslint/</id>
    <content type="html">&lt;p&gt;When we &lt;a href=&quot;https://eslint.org/blog/2024/04/eslint-v9.0.0-released/&quot;&gt;released ESLint v9.0.0&lt;/a&gt; in April, it was the first major release in 30 months and formally introduced the &lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-1/&quot;&gt;new&lt;/a&gt; &lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-2/&quot;&gt;configuration&lt;/a&gt; &lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-3/&quot;&gt;system&lt;/a&gt;. ESLint v9.0.0 also made some &lt;a href=&quot;https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/&quot;&gt;rule API changes&lt;/a&gt; to prepare the core for what’s coming next. After the release, we spent a lot of time &lt;a href=&quot;https://eslint.org/blog/2024/05/eslint-compatibility-utilities/&quot;&gt;creating compatibility utilities&lt;/a&gt;, a &lt;a href=&quot;https://eslint.org/blog/2024/05/eslint-configuration-migrator/&quot;&gt;configuration migration tool&lt;/a&gt;, and a &lt;a href=&quot;https://github.com/eslint/eslint-transforms&quot;&gt;rule API transform utility&lt;/a&gt; to help the ecosystem move to ESLint v9.0.0. All of that work was necessary for us to move on to the next significant changes coming to ESLint.&lt;/p&gt;
&lt;h2 id=&quot;language-plugins&quot; tabindex=&quot;-1&quot;&gt;Language plugins&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/15562&quot;&gt;Two years ago&lt;/a&gt;, the TSC decided that it was time to open up ESLint to make it possible to lint languages other than JavaScript. Practically speaking, there are a lot of things that the ESLint core does that are not specific to JavaScript: the finding and reading of files, the loading of file-specific configuration, collecting rule violations, outputting results to the console, and so on. Further, we kept finding plugins that were linting other languages (like &lt;a href=&quot;https://the-guild.dev/graphql/eslint/docs&quot;&gt;GraphQL&lt;/a&gt; and &lt;a href=&quot;https://html-eslint.org/&quot;&gt;HTML&lt;/a&gt;) from within ESLint, passing a different AST through the same logic that JavaScript was using. That’s inefficient and error-prone, and there had to be a better way.&lt;/p&gt;
&lt;p&gt;In 2023, the &lt;a href=&quot;https://github.com/eslint/rfcs/blob/main/designs/2022-languages/README.md&quot;&gt;language plugins RFC&lt;/a&gt; was formally approved. In order to implement this RFC, however, we needed to officially ship the new configuration and make some rule API changes. The rule API changes, in particular, were necessary to separate what the ESLint core was doing and what a language plugin would provide to custom rules. Once those two changes were available, we started the laborious task of refactoring the ESLint core to extract the JavaScript-specific parts from the language-agnostic parts.&lt;/p&gt;
&lt;p&gt;Here’s what to expect going forward (with no specific timetable as everything is dependent upon contributor availability):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;@eslint/js&lt;/code&gt;&lt;/strong&gt; - We will slowly move all of the JavaScript-related functionality into the &lt;code&gt;@eslint/js&lt;/code&gt; package, including rules and documentation. We will reuse the existing &lt;a href=&quot;https://github.com/eslint/espree/issues/609&quot;&gt;Espree repo&lt;/a&gt; and convert it into a monorepo containing Espree, &lt;code&gt;eslint-scope&lt;/code&gt;, &lt;code&gt;eslint-visitor-keys&lt;/code&gt;, and all of the core JavaScript rules. This will allow us to deal with everything JavaScript-related in a single repo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;@eslint/json&lt;/code&gt;&lt;/strong&gt; - Our first language plugin will allow ESLint to lint JSON files natively. This plugin will contain the parsing logic and all of the related rules and documentation. Similar to &lt;code&gt;@eslint/js&lt;/code&gt;, this will allow us to have a single repo to focus on JSON linting, further moving any language-specific functionality away from the core.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;@eslint/markdown&lt;/code&gt;&lt;/strong&gt; - &lt;a href=&quot;https://github.com/eslint/eslint-plugin-markdown&quot;&gt;&lt;code&gt;eslint-plugin-markdown&lt;/code&gt;&lt;/a&gt; will be renamed to &lt;code&gt;@eslint/markdown&lt;/code&gt; to better align with the other packages. We’ll add the ability to lint Markdown and Markdown-specific rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The current plan is to have these three official ESLint language plugins with the hopes that they serve as examples for the ecosystem to develop more language plugins.&lt;/p&gt;
&lt;p&gt;With language-specific functionality extracted into separate repositories, that leaves us with the task of rewriting the core completely.&lt;/p&gt;
&lt;h2 id=&quot;core-rewrite&quot; tabindex=&quot;-1&quot;&gt;Core rewrite&lt;/h2&gt;
&lt;p&gt;The architecture of the code in the ESLint repository hasn’t changed considerably since ESLint was first created 11 years ago. As a result, there is a lot of technical debt that has accumulated and prevents us from making some of the changes we’d like to make. Some of the problems we currently face:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Synchronous core logic.&lt;/strong&gt; The &lt;code&gt;Linter&lt;/code&gt; class is completely synchronous, meaning we can’t support asynchronous rules or asynchronous parsing, two feature requests we receive frequently. We’d need to either add a second class that works asynchronously or add alternate methods to &lt;code&gt;Linter&lt;/code&gt; that work asynchronously. Both options looked like significant work, effectively rewriting huge parts of the core.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Limited API.&lt;/strong&gt; The public API is limited because ESLint, at the start, was never intended to be used as an API. The initial &lt;code&gt;linter&lt;/code&gt; object was meant only to enable a browser demo. It was later replaced by the &lt;code&gt;Linter&lt;/code&gt; class, and even later, an &lt;code&gt;ESLint&lt;/code&gt; class to fully mimic the command line interface. When we want to expose new functionality, it needs to exist in one of these two similar-sounding APIs, and unfortunately, the main decision point is whether or not the API needs to be available in the browser. If so, then it needs to be in &lt;code&gt;Linter&lt;/code&gt;, otherwise it needs to be in &lt;code&gt;ESLint&lt;/code&gt;. This is both confusing and not sustainable in the long term.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lack of type checking.&lt;/strong&gt; We’ve had the desire to add type checking into the repository to help catch potential problems, but attempts to do this in the past required a lot of work and coordination. Eventually, we came to the conclusion that it wasn’t worth the effort.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stuck in CommonJS.&lt;/strong&gt; Similar to the type checking situation, while there is a desire to convert the codebase into ESM, the amount of work it would take to do so is prohibitive. We’d spend a lot of time on the conversion just to end up with an equivalent feature set.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After thinking through the options of continually to incrementally change the existing core or starting from scratch, we &lt;a href=&quot;https://github.com/eslint/rewrite/blob/main/decisions/001-rewrite-core.md&quot;&gt;decided&lt;/a&gt; that it was time to start from scratch. While we firmly believe that a complete rewrite represents a significant risk, after 11 years, we can honestly say that we got the most out of the initial architecture.&lt;/p&gt;
&lt;p&gt;Going forward, here’s what you can expect:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A new repository.&lt;/strong&gt; The &lt;a href=&quot;https://github.com/eslint/rewrite&quot;&gt;&lt;code&gt;eslint/rewrite&lt;/code&gt;&lt;/a&gt; repository is the new home for our language-agnostic work. It’s a monorepo where we’ll manage all of the packages that directly relate to the core in some way.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Modern packages.&lt;/strong&gt; Every package in &lt;code&gt;eslint/rewrite&lt;/code&gt; will be up to modern standards, publishing ESM entrypoints along with type definitions. When possible, we’ll also publish CommonJS entrypoints. All packages are published with provenance to both npm and JSR (when applicable).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A runtime-agnostic core.&lt;/strong&gt; The &lt;code&gt;@eslint/core&lt;/code&gt; package will contain a runtime-agnostic API for ESLint along with type definitions for the core. We will build this package up slowly over time as we design the new API, extracting pieces of functionality out of the &lt;code&gt;eslint&lt;/code&gt; package. With more JavaScript runtimes emerging each year, we feel that a runtime-agnostic core is becoming more important.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A composable API.&lt;/strong&gt; Instead of bundling all functionality into one or two classes, the new API will be composable, with many purpose-built classes designed to be used together. Class will follow the single-responsibility principle, making it easier to make changes and customize ESLint inside of integrations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A new CLI.&lt;/strong&gt; We’ll be rewriting the CLI from scratch in the &lt;code&gt;@eslint/node&lt;/code&gt; package. We’ll start with the most common use cases and reevaluate each flag to make sure it still makes sense for a language-agnostic core. Using a different package name allows us to experiment with the new CLI without disrupting the use of the &lt;code&gt;eslint&lt;/code&gt; package. This package will also export additional Node.js-specific APIs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parallel development.&lt;/strong&gt; We will continue to maintain &lt;code&gt;eslint&lt;/code&gt; and the rewrite in parallel so that we aren’t sacrificing the existing package for something completely new. The goal is for the &lt;code&gt;eslint&lt;/code&gt; package to slowly become smaller and make use of the APIs contained in &lt;code&gt;@eslint/core&lt;/code&gt; so we are limiting duplication as much as possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;We are very excited for this future direction of ESLint as we think this represents the next logical step in ESLint’s evolution. Turning ESLint into a language-agnostic linter that anyone can write plugins for will simplify development by reducing the number of linting tools and editor extensions any one project needs. Further, rewriting our core into a more composable API allows easier and more customizable integrations, along with owning our own type definitions to ensure compatibility with the APIs.&lt;/p&gt;
&lt;p&gt;ESLint has made it through 11 years with its current architecture, and we hope that these changes will get us through the next 11 years.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.6.0 released</title>
    <link href="https://eslint.org/blog/2024/06/eslint-v9.6.0-released/"/>
    <updated>2024-06-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/06/eslint-v9.6.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ESLint’s default parser &lt;code&gt;espree&lt;/code&gt; now supports &lt;a href=&quot;https://github.com/tc39/proposal-duplicate-named-capturing-groups&quot;&gt;RegExp duplicate named capturing groups&lt;/a&gt; ES2025 syntax when &lt;code&gt;languageOptions.ecmaVersion&lt;/code&gt; is set to &lt;code&gt;2025&lt;/code&gt; or &lt;code&gt;&amp;quot;latest&amp;quot;&lt;/code&gt; (default). Please note that the core rules have not yet been updated to support this syntax.&lt;/li&gt;
&lt;li&gt;Backslash (&lt;code&gt;&#92;&lt;/code&gt;) can now be used as an escape character in &lt;code&gt;files&lt;/code&gt; and &lt;code&gt;ignores&lt;/code&gt; patterns, regardless of the operating system. Note that only forward slash (&lt;code&gt;/&lt;/code&gt;) is interpreted as a path separator in &lt;code&gt;files&lt;/code&gt; and &lt;code&gt;ignores&lt;/code&gt; patterns, regardless of the operating system.&lt;/li&gt;
&lt;li&gt;The messages reported by the &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; rule have been improved to include configured ignore patterns for different kinds of variables.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2b16e2b72606162dce3d804bc80186b6c5ec0f9&quot;&gt;&lt;code&gt;e2b16e2&lt;/code&gt;&lt;/a&gt; feat: Implement feature flags (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18516&quot;&gt;#18516&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8824aa1469ffc572c5e5c1765d1b6da113dfba19&quot;&gt;&lt;code&gt;8824aa1&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;ecmaVersion: 2025&lt;/code&gt;, parsing duplicate named capturing groups (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18596&quot;&gt;#18596&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1613e2e586423ec7871617aec4dce5c433f0e9f0&quot;&gt;&lt;code&gt;1613e2e&lt;/code&gt;&lt;/a&gt; fix: Allow escaping characters in config patterns on Windows (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18628&quot;&gt;#18628&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21d3766c3f4efd981d3cc294c2c82c8014815e6e&quot;&gt;&lt;code&gt;21d3766&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; include caught errors pattern in report message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18609&quot;&gt;#18609&lt;/a&gt;) (Kirk Waiblinger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d7a7736937981befc5dfd68ce512f1a6ebf93e68&quot;&gt;&lt;code&gt;d7a7736&lt;/code&gt;&lt;/a&gt; fix: improve &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; message on unused caught errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18608&quot;&gt;#18608&lt;/a&gt;) (Kirk Waiblinger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9e95d2d06c0a7017417a3de4929b14d1008c63c&quot;&gt;&lt;code&gt;f9e95d2&lt;/code&gt;&lt;/a&gt; fix: correct locations of invalid &lt;code&gt;/* eslint */&lt;/code&gt; comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18593&quot;&gt;#18593&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13dbecdea749abf51951ce61662eec2621a4b9af&quot;&gt;&lt;code&gt;13dbecd&lt;/code&gt;&lt;/a&gt; docs: Limit search to just docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18627&quot;&gt;#18627&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/375227f94da3c1c4ff6c61a29b272889fa48ca79&quot;&gt;&lt;code&gt;375227f&lt;/code&gt;&lt;/a&gt; docs: Update &lt;code&gt;getting-started.md&lt;/code&gt; - add pnpm to init eslint config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18599&quot;&gt;#18599&lt;/a&gt;) (Kostiantyn Ochenash)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/44915bb95dfa21f946021d77b3b361e7e9b140e0&quot;&gt;&lt;code&gt;44915bb&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d50db7bcb4c19c0631ab80b120249ecf155824ce&quot;&gt;&lt;code&gt;d50db7b&lt;/code&gt;&lt;/a&gt; docs: Update vscode-eslint info (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18595&quot;&gt;#18595&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b15ee302742e280e8cd019b49e7b50a4f3b88bc0&quot;&gt;&lt;code&gt;b15ee30&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.6.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18632&quot;&gt;#18632&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d655503b1fc97acfb4e7c61b3d9b557733c189b7&quot;&gt;&lt;code&gt;d655503&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c78ad9d9f896354d557f24e2d37710cf79a27bf&quot;&gt;&lt;code&gt;7c78ad9&lt;/code&gt;&lt;/a&gt; refactor: Use language.visitorKeys and check for non-JS SourceCode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18625&quot;&gt;#18625&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/69ff64e638c0a56628afbc271dda5c963724aca4&quot;&gt;&lt;code&gt;69ff64e&lt;/code&gt;&lt;/a&gt; refactor: Return value of applyInlineConfig() (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18623&quot;&gt;#18623&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d2d06f7a70d9b96b125ecf2de8951bea549db4da&quot;&gt;&lt;code&gt;d2d06f7&lt;/code&gt;&lt;/a&gt; refactor: use &lt;code&gt;/&lt;/code&gt; separator when adjusting &lt;code&gt;ignorePatterns&lt;/code&gt; on Windows (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18613&quot;&gt;#18613&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/642197346bf02d277c2014144537aa21ab57dc59&quot;&gt;&lt;code&gt;6421973&lt;/code&gt;&lt;/a&gt; refactor: fix disable directives for languages with 0-based lines (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18605&quot;&gt;#18605&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a135395aca72461eb8b4c6f0866290bcf59916e&quot;&gt;&lt;code&gt;0a13539&lt;/code&gt;&lt;/a&gt; refactor: Allow optional methods for languages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18604&quot;&gt;#18604&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c7ddee0d089e4db7be3f1a09f1a5731dd90b81b1&quot;&gt;&lt;code&gt;c7ddee0&lt;/code&gt;&lt;/a&gt; chore: make internal-rules not being a package (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18601&quot;&gt;#18601&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3379164e8b0cee57caf7da34226982075ebef51a&quot;&gt;&lt;code&gt;3379164&lt;/code&gt;&lt;/a&gt; chore: remove &lt;code&gt;.eslintrc.js&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18011&quot;&gt;#18011&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0c3a322fbcc2f70cfcd9d5010efef721245c382&quot;&gt;&lt;code&gt;d0c3a32&lt;/code&gt;&lt;/a&gt; chore: update knip (with webdriver-io plugin) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18594&quot;&gt;#18594&lt;/a&gt;) (Lars Kappert)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.5.0 released</title>
    <link href="https://eslint.org/blog/2024/06/eslint-v9.5.0-released/"/>
    <updated>2024-06-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/06/eslint-v9.5.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;@eslint/compat&lt;/code&gt; package now provides utility for &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/ignore#including-gitignore-files&quot;&gt;including &lt;code&gt;.gitignore&lt;/code&gt; files&lt;/a&gt; or any other files with gitignore-style patterns in your &lt;code&gt;eslint.config.js&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;Messages about ignored files have been improved to distinguish between files that are ignored because of a matching ignore pattern, files that are ignored because no matching configuration is supplied, and files that are ignored because they are located outside of the base path.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-sparse-arrays&quot;&gt;no-sparse-arrays&lt;/a&gt; rule now reports precise locations of holes in array literals.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b2d256c7356838f908c4a5762d6dc64b41bbce5d&quot;&gt;&lt;code&gt;b2d256c&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-sparse-arrays&quot;&gt;&lt;code&gt;no-sparse-arrays&lt;/code&gt;&lt;/a&gt; report on “comma” instead of the whole array (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18579&quot;&gt;#18579&lt;/a&gt;) (fisker Cheung)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6880286e17375b08323512f38ea59fed440a4fb5&quot;&gt;&lt;code&gt;6880286&lt;/code&gt;&lt;/a&gt; fix: treat &lt;code&gt;*&lt;/code&gt; as a universal pattern (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18586&quot;&gt;#18586&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7fbe211427432aba5fa972252b9b6b5cf9866624&quot;&gt;&lt;code&gt;7fbe211&lt;/code&gt;&lt;/a&gt; fix: message template for all files ignored (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18564&quot;&gt;#18564&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/469cb363f87564bafb8e628e738e01b53f4d6911&quot;&gt;&lt;code&gt;469cb36&lt;/code&gt;&lt;/a&gt; fix: Don’t lint the same file multiple times (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18552&quot;&gt;#18552&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5cff638c03183204d09eb0a7a8bd2e032630db17&quot;&gt;&lt;code&gt;5cff638&lt;/code&gt;&lt;/a&gt; fix: improve message for ignored files without a matching config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18404&quot;&gt;#18404&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/455f7fd1662069e9e0f4dc912ecda72962679fbe&quot;&gt;&lt;code&gt;455f7fd&lt;/code&gt;&lt;/a&gt; docs: add section about including &lt;code&gt;.gitignore&lt;/code&gt; files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18590&quot;&gt;#18590&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/721eafeae45b33b95addf385c23eca1e2f8017d0&quot;&gt;&lt;code&gt;721eafe&lt;/code&gt;&lt;/a&gt; docs: update info about universal &lt;code&gt;files&lt;/code&gt; patterns (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18587&quot;&gt;#18587&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8127127386180a2882bb1b75a8fbc7ffda78dce1&quot;&gt;&lt;code&gt;8127127&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/55c2a6621cc403f2fc11eb4ad762eadc70a54874&quot;&gt;&lt;code&gt;55c2a66&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb76282e0a2db8aa10a3d5659f5f9237d9729121&quot;&gt;&lt;code&gt;eb76282&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff6e96ec30862a4eb77a201551ec8c618335bfc2&quot;&gt;&lt;code&gt;ff6e96e&lt;/code&gt;&lt;/a&gt; docs: &lt;code&gt;baseConfig&lt;/code&gt; and &lt;code&gt;overrideConfig&lt;/code&gt; can be arrays (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18571&quot;&gt;#18571&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d2d83e045ad03f024d1679275708054d789ebe20&quot;&gt;&lt;code&gt;d2d83e0&lt;/code&gt;&lt;/a&gt; docs: Add mention of eslint-transforms to v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18566&quot;&gt;#18566&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ce6832578d5798b591f490a8609c87235e881c7&quot;&gt;&lt;code&gt;9ce6832&lt;/code&gt;&lt;/a&gt; docs: add callout box for unintuitive behavior (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18567&quot;&gt;#18567&lt;/a&gt;) (Ben McCann)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8db99c575c75edc9b42e6333e1b0aa7d26d9a01&quot;&gt;&lt;code&gt;b8db99c&lt;/code&gt;&lt;/a&gt; docs: Add VS Code info to config migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18555&quot;&gt;#18555&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/518a35c8fa9161522cbe9066d48e6c6fcd8aadf3&quot;&gt;&lt;code&gt;518a35c&lt;/code&gt;&lt;/a&gt; docs: Mention config migrator (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18561&quot;&gt;#18561&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb440fcf16bd2f62d58b7aa9bbaf546cd94e9918&quot;&gt;&lt;code&gt;eb440fc&lt;/code&gt;&lt;/a&gt; docs: specifying files with arbitrary or no extension (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18539&quot;&gt;#18539&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38c159e7dda812ce6dfdbf8c5b78db7cdd676c62&quot;&gt;&lt;code&gt;38c159e&lt;/code&gt;&lt;/a&gt; docs: Provide example of reading package.json for plugins meta (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18530&quot;&gt;#18530&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d16a6599cad35726f62eb230bb95af463611c6c6&quot;&gt;&lt;code&gt;d16a659&lt;/code&gt;&lt;/a&gt; docs: add link to migration guide for &lt;code&gt;--ext&lt;/code&gt; CLI option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18537&quot;&gt;#18537&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/73408de08dbe1873bf6b5564533c0d81134cfeee&quot;&gt;&lt;code&gt;73408de&lt;/code&gt;&lt;/a&gt; docs: add link to configuration file docs before examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18535&quot;&gt;#18535&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f588160c2f9996c9c62b787f1fe678f71740ec43&quot;&gt;&lt;code&gt;f588160&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.5.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18591&quot;&gt;#18591&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58908415c3e9e7924d39a2ff96573f7677ddb806&quot;&gt;&lt;code&gt;5890841&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e9f4ccd8a182801e08d96d4246df10246ea82a58&quot;&gt;&lt;code&gt;e9f4ccd&lt;/code&gt;&lt;/a&gt; chore: remove unused eslint-disable directive (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18589&quot;&gt;#18589&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b23ffd6454cfb1a269430f5fe28e7d1c37b9d3e&quot;&gt;&lt;code&gt;4b23ffd&lt;/code&gt;&lt;/a&gt; refactor: Move JS parsing logic into JS language (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18448&quot;&gt;#18448&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1495b93d6fac4d7b6c9efa24c46b613f47feb1d4&quot;&gt;&lt;code&gt;1495b93&lt;/code&gt;&lt;/a&gt; chore: update WebdriverIO packages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18558&quot;&gt;#18558&lt;/a&gt;) (Christian Bromann)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cea7ede4618d789180d37ee12a57939b30a5c4ee&quot;&gt;&lt;code&gt;cea7ede&lt;/code&gt;&lt;/a&gt; chore: add website donate link instead of opencollective (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18582&quot;&gt;#18582&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec948803c99ab1b001f093c7a2c412945fbb385f&quot;&gt;&lt;code&gt;ec94880&lt;/code&gt;&lt;/a&gt; chore: package.json update for eslint-config-eslint release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/69125865b058c08ded162d4395d606dd22acb77d&quot;&gt;&lt;code&gt;6912586&lt;/code&gt;&lt;/a&gt; chore: extract formatting rules into separate config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18560&quot;&gt;#18560&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9738f7e9dee49a9a3a7b8bfce87eb236ede6f572&quot;&gt;&lt;code&gt;9738f7e&lt;/code&gt;&lt;/a&gt; ci: fix CLI flags for c8, raise thresholds (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18554&quot;&gt;#18554&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c6de7bba57054efd4620e0630c23e2c63b1927b2&quot;&gt;&lt;code&gt;c6de7bb&lt;/code&gt;&lt;/a&gt; chore: update dependency markdownlint-cli to ^0.41.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18538&quot;&gt;#18538&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c8fd34bf1471efbd6e616b50d4e25ea858a6989&quot;&gt;&lt;code&gt;2c8fd34&lt;/code&gt;&lt;/a&gt; ci: pin @wdio/browser-runner v8.36.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18540&quot;&gt;#18540&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.4.0 released</title>
    <link href="https://eslint.org/blog/2024/05/eslint-v9.4.0-released/"/>
    <updated>2024-05-31T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/05/eslint-v9.4.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-loop-func&quot;&gt;&lt;code&gt;no-loop-func&lt;/code&gt;&lt;/a&gt; rule no longer reports on IIFE’s.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/use/command-line-interface#--inspect-config&quot;&gt;&lt;code&gt;--inspect-config&lt;/code&gt;&lt;/a&gt; CLI flag will now launch the latest version of the &lt;a href=&quot;https://www.npmjs.com/package/@eslint/config-inspector&quot;&gt;ESLint Config Inspector&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-constructor-return&quot;&gt;&lt;code&gt;no-constructor-return&lt;/code&gt;&lt;/a&gt; rule now allows &lt;code&gt;return&lt;/code&gt; statements without a value anywhere in a constructor.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89a4a0a260b8eb11487fe3d5d4d80f4630933eb3&quot;&gt;&lt;code&gt;89a4a0a&lt;/code&gt;&lt;/a&gt; feat: ignore IIFE’s in the &lt;a href=&quot;https://eslint.org/docs/rules/no-loop-func&quot;&gt;&lt;code&gt;no-loop-func&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17528&quot;&gt;#17528&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6534d14033e04f6c7c88a1f0c44a8077148ec6b&quot;&gt;&lt;code&gt;f6534d1&lt;/code&gt;&lt;/a&gt; fix: skip processor code blocks that match only universal patterns (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18507&quot;&gt;#18507&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7226ebd69df04a4cc5fe546641f3443b60ec47e9&quot;&gt;&lt;code&gt;7226ebd&lt;/code&gt;&lt;/a&gt; fix: allow implicit undefined return in &lt;a href=&quot;https://eslint.org/docs/rules/no-constructor-return&quot;&gt;&lt;code&gt;no-constructor-return&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18515&quot;&gt;#18515&lt;/a&gt;) (Ali Rezvani)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/389744be255717c507fafc158746e579ac08d77e&quot;&gt;&lt;code&gt;389744b&lt;/code&gt;&lt;/a&gt; fix: use &lt;code&gt;@eslint/config-inspector@latest&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18483&quot;&gt;#18483&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/70118a5b11860fce364028d3c515393b6a586aae&quot;&gt;&lt;code&gt;70118a5&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/func-style&quot;&gt;&lt;code&gt;func-style&lt;/code&gt;&lt;/a&gt; false positive with arrow functions and &lt;code&gt;super&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18473&quot;&gt;#18473&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d7ab6f589d39c64bc5daaef4be3a972032f04c05&quot;&gt;&lt;code&gt;d7ab6f5&lt;/code&gt;&lt;/a&gt; docs: update theme when when &lt;code&gt;prefers-color-scheme&lt;/code&gt; changes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18510&quot;&gt;#18510&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/525fdffde4cb34010bc503f6d54855b3f9d07811&quot;&gt;&lt;code&gt;525fdff&lt;/code&gt;&lt;/a&gt; docs: fix components files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18519&quot;&gt;#18519&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/80747d23dec69b30ea2c3620a1198f7d06b012b8&quot;&gt;&lt;code&gt;80747d2&lt;/code&gt;&lt;/a&gt; docs: refactor &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;&lt;code&gt;prefer-destructuring&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18472&quot;&gt;#18472&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f06e0b5f51ae1aad8957d27aa0ea4d6d0ad51455&quot;&gt;&lt;code&gt;f06e0b5&lt;/code&gt;&lt;/a&gt; docs: clarify &lt;a href=&quot;https://eslint.org/docs/rules/func-style&quot;&gt;func-style&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18477&quot;&gt;#18477&lt;/a&gt;) (Cameron Steffen)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/010dd2ef50456a1ba5892152192b6c9d9d5fd470&quot;&gt;&lt;code&gt;010dd2e&lt;/code&gt;&lt;/a&gt; chore: upgrade to &lt;code&gt;@eslint/js@9.4.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18534&quot;&gt;#18534&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e1b5dc9a3d839737125571c8fd4e239d81608de&quot;&gt;&lt;code&gt;5e1b5dc&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/594145f493d913e2b7e25a27accf33c44e1d4687&quot;&gt;&lt;code&gt;594145f&lt;/code&gt;&lt;/a&gt; refactor: switch to &lt;code&gt;@eslint/config-array&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18527&quot;&gt;#18527&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Introducing the ESLint Configuration Migrator</title>
    <link href="https://eslint.org/blog/2024/05/eslint-configuration-migrator/"/>
    <updated>2024-05-31T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/05/eslint-configuration-migrator/</id>
    <content type="html">&lt;p&gt;We’ve heard you: One of the biggest reasons ESLint users haven’t upgraded to ESLint v9.x is migrating a configuration file seems difficult and complicated. Some plugins support flat config and the ESLint v9.x rule APIs and some don’t. Sometimes you need to use &lt;a href=&quot;https://github.com/eslint/eslintrc?tab=readme-ov-file#usage-esm&quot;&gt;&lt;code&gt;FlatCompat&lt;/code&gt;&lt;/a&gt; and sometimes you need to use the &lt;a href=&quot;https://eslint.org/blog/2024/05/eslint-compatibility-utilities/&quot;&gt;compatibility utilities&lt;/a&gt;. While we cover as much as we can in the &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/migration-guide&quot;&gt;migration guide&lt;/a&gt;, it can take time to walk through your configuration and make the necessary changes.&lt;/p&gt;
&lt;p&gt;That’s why we’re excited to announce the release of the &lt;a href=&quot;https://npmjs.com/package/@eslint/migrate-config&quot;&gt;ESLint Configuration Migrator&lt;/a&gt;. This utility is designed to translate &lt;code&gt;.eslintrc.*&lt;/code&gt; files into &lt;code&gt;eslint.config.js&lt;/code&gt; files, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1-for-1 migration of &lt;code&gt;.eslintrc&lt;/code&gt;, &lt;code&gt;.eslintrc.json&lt;/code&gt;, &lt;code&gt;.eslintrc.yml&lt;/code&gt;, and &lt;code&gt;.eslintrc.yaml&lt;/code&gt; files.&lt;/li&gt;
&lt;li&gt;Reasonable migration of simple &lt;code&gt;.eslintrc.js&lt;/code&gt;, &lt;code&gt;.eslintrc.cjs&lt;/code&gt;, and &lt;code&gt;.eslintrc.mjs&lt;/code&gt; files. (These will often need edits if you are using variables to build your config).&lt;/li&gt;
&lt;li&gt;Automatic inclusion of &lt;code&gt;.eslintignore&lt;/code&gt; patterns into your new config file.&lt;/li&gt;
&lt;li&gt;Automatic use of &lt;code&gt;FlatCompat&lt;/code&gt; when necessary.&lt;/li&gt;
&lt;li&gt;Automatic use of the compatibility utilities when necessary.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; This version of the utility does not handle anything but the simplest JavaScript configuration file (&lt;code&gt;.eslintrc.js&lt;/code&gt;, &lt;code&gt;.eslintrc.cjs&lt;/code&gt;, &lt;code&gt;.eslintrc.mjs&lt;/code&gt;). It works by evaluating the file and then migrating the calculated configuration. As such, it will not maintain any logic inside of the file. We hope to add this capability in a future version.&lt;/p&gt;
&lt;h2 id=&quot;using-the-configuration-migrator&quot; tabindex=&quot;-1&quot;&gt;Using the configuration migrator&lt;/h2&gt;
&lt;p&gt;You can use the configuration migrator directly from npm without installing it via &lt;code&gt;npx&lt;/code&gt; or similar commands. Pass the location of the &lt;code&gt;.eslintrc.*&lt;/code&gt; file to convert, like this:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;npx @eslint/migrate-config .eslintrc.json&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# or&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;yarn&lt;/span&gt; dlx @eslint/migrate-config .eslintrc.json&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# or&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; dlx @eslint/migrate-config .eslintrc.json&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# or&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;bunx @eslint/migrate-config .eslintrc.json&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;By default, this command will output a &lt;code&gt;eslint.config.mjs&lt;/code&gt; file. If you’d like to output a CommonJS file instead, add the &lt;code&gt;--commonjs&lt;/code&gt; flag:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;npx @eslint/migrate-config .eslintrc.json &lt;span class=&quot;token parameter variable&quot;&gt;--commonjs&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# or&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;yarn&lt;/span&gt; dlx @eslint/migrate-config .eslintrc.json &lt;span class=&quot;token parameter variable&quot;&gt;--commonjs&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# or&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; dlx @eslint/migrate-config .eslintrc.json &lt;span class=&quot;token parameter variable&quot;&gt;--commonjs&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# or&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;bunx @eslint/migrate-config .eslintrc.json &lt;span class=&quot;token parameter variable&quot;&gt;--commonjs&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;limitations&quot; tabindex=&quot;-1&quot;&gt;Limitations&lt;/h2&gt;
&lt;p&gt;The goal of the configuration migrator is to reduce the likelihood of running into errors when you use it for the first time, and as a result, it aggressively employs &lt;code&gt;FlatCompat&lt;/code&gt; and the compatibility utilities. This means that the generated configuration file may not be optimal and you may be able to simplify it yourself.&lt;/p&gt;
&lt;p&gt;After generating a configuration file, you should review the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Are there more recent versions of plugins?&lt;/strong&gt; It’s possible that there’s a newer version of a plugin that fully supports ESLint v9.x on its own and doesn’t require any kind of compatibility work. It’s always best to upgrade to the latest version of the plugins you use.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Do you have &lt;code&gt;.eslintrc.*&lt;/code&gt; config files in other directories?&lt;/strong&gt; The new configuration system doesn’t merge configuration files from ancestor directories. If you are using &lt;code&gt;.eslintrc.*&lt;/code&gt; files to override configuration in specific directories, you’ll need to move that configuration into your primary &lt;code&gt;eslint.config.*&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Were you using the &lt;code&gt;--ext&lt;/code&gt; CLI flag?&lt;/strong&gt; If so, you’ll need to &lt;a href=&quot;https://github.com/eslint/rewrite/tree/main/packages/migrate-config#--ext&quot;&gt;create an entry&lt;/a&gt; in your configuration file to match the file extensions you use to pass on the command line.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It’s possible that the generated configuration file won’t work without some modification, but it should get you very close.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;When we released ESLint v9.x, we thought providing the configuration migration guide would get most users through the transition to the new configuration system. Unfortunately, we didn’t anticipate all of the challenges that folks would encounter along the way. We hope that the configuration migrator makes this transition a lot easier going forward. Getting every config file to work 100% after migration is impossible due to the various ways that people configure ESLint, but we think that this tool should avoid most tedious translation steps to get you up and running in ESLint v9.x faster.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.3.0 released</title>
    <link href="https://eslint.org/blog/2024/05/eslint-v9.3.0-released/"/>
    <updated>2024-05-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/05/eslint-v9.3.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;ESLint v9.3.0 adds new options to some rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;func-style&lt;/code&gt; has the new option &lt;a href=&quot;https://eslint.org/docs/latest/rules/func-style#options&quot;&gt;&lt;code&gt;overrides.namedExports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-extra-boolean-cast&lt;/code&gt; has the new option &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-extra-boolean-cast#options&quot;&gt;&lt;code&gt;enforceForInnerExpressions&lt;/code&gt;&lt;/a&gt; superseding the deprecated but still recognized &lt;code&gt;enforceForLogicalOperands&lt;/code&gt; option&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt; has the new new option &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-misleading-character-class#options&quot;&gt;&lt;code&gt;allowEscape&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-restricted-exports&lt;/code&gt; has the new option &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-restricted-exports#options&quot;&gt;&lt;code&gt;restrictedNamedExportsPattern&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The built-in rules &lt;a href=&quot;https://eslint.org/docs/latest/rules/line-comment-position&quot;&gt;&lt;code&gt;line-comment-position&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/latest/rules/multiline-comment-style&quot;&gt;&lt;code&gt;multiline-comment-style&lt;/code&gt;&lt;/a&gt; have been deprecated in favor of third-party replacements.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b32153c97317c6fc593c2abbf6ae994519d473b4&quot;&gt;&lt;code&gt;b32153c&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;overrides.namedExports&lt;/code&gt; to &lt;a href=&quot;https://eslint.org/docs/rules/func-style&quot;&gt;&lt;code&gt;func-style&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18444&quot;&gt;#18444&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b67eba4514026ef7e489798fd883beb678817a46&quot;&gt;&lt;code&gt;b67eba4&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;restrictedNamedExportsPattern&lt;/code&gt; to &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-exports&quot;&gt;&lt;code&gt;no-restricted-exports&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18431&quot;&gt;#18431&lt;/a&gt;) (Akul Srivastava)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/069aa680c78b8516b9a1b568519f1d01e74fb2a2&quot;&gt;&lt;code&gt;069aa68&lt;/code&gt;&lt;/a&gt; feat: add option &lt;code&gt;allowEscape&lt;/code&gt; to &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18208&quot;&gt;#18208&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05ef92dd15949014c0735125c89b7bd70dec58c8&quot;&gt;&lt;code&gt;05ef92d&lt;/code&gt;&lt;/a&gt; feat: deprecate &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;&lt;code&gt;multiline-comment-style&lt;/code&gt;&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://eslint.org/docs/rules/line-comment-position&quot;&gt;&lt;code&gt;line-comment-position&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18435&quot;&gt;#18435&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db0b174c3ace60e29585bfc3520727c44cefcfc5&quot;&gt;&lt;code&gt;db0b174&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;enforceForInnerExpressions&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;&lt;code&gt;no-extra-boolean-cast&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18222&quot;&gt;#18222&lt;/a&gt;) (Kirk Waiblinger)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8db0eff4ba89b45f439c27ba1202ed056ae92e83&quot;&gt;&lt;code&gt;8db0eff&lt;/code&gt;&lt;/a&gt; fix: Improve config error messages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18457&quot;&gt;#18457&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c28d9a367e1608e097c491f40b8afd0730a8b9e&quot;&gt;&lt;code&gt;5c28d9a&lt;/code&gt;&lt;/a&gt; fix: don’t remove comments between key and value in &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18442&quot;&gt;#18442&lt;/a&gt;) (Kuba Jastrzębski)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/39fb0ee9cd33f952707294e67f194d414261a571&quot;&gt;&lt;code&gt;39fb0ee&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; loses type parameters when auto-fixing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18438&quot;&gt;#18438&lt;/a&gt;) (dalaoshu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/37eba48d6f2d3c99c5ecf2fc3967e428a6051dbb&quot;&gt;&lt;code&gt;37eba48&lt;/code&gt;&lt;/a&gt; fix: don’t crash when &lt;code&gt;fs.readFile&lt;/code&gt; returns promise from another realm (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18416&quot;&gt;#18416&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ceada8c702d4903d6872f46a25d68b672d2c6289&quot;&gt;&lt;code&gt;ceada8c&lt;/code&gt;&lt;/a&gt; docs: explain how to use “tsc waiting” label (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18466&quot;&gt;#18466&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62e686c5e90411fed2b5561be5688d7faf64d791&quot;&gt;&lt;code&gt;62e686c&lt;/code&gt;&lt;/a&gt; docs: Add troubleshooting info for plugin compatibility (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18451&quot;&gt;#18451&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e17e1c0dd5d5dc5a4cae5888116913f6555b1f1e&quot;&gt;&lt;code&gt;e17e1c0&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2465a1e3f3b78f302f64e62e5f0d851626b81b3c&quot;&gt;&lt;code&gt;2465a1e&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d23574c5c0275c8b3714a7a6d3e8bf2108af60f1&quot;&gt;&lt;code&gt;d23574c&lt;/code&gt;&lt;/a&gt; docs: Clarify usage of &lt;a href=&quot;https://eslint.org/docs/rules/no-unreachable&quot;&gt;&lt;code&gt;no-unreachable&lt;/code&gt;&lt;/a&gt; with TypeScript (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18445&quot;&gt;#18445&lt;/a&gt;) (benj-dobs)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1db9bae944b69945e3b05f76754cced16ae83838&quot;&gt;&lt;code&gt;1db9bae&lt;/code&gt;&lt;/a&gt; docs: Fix typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18443&quot;&gt;#18443&lt;/a&gt;) (Frieder Bluemle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/70651968beb0f907c9689c2477721c0b991acc4a&quot;&gt;&lt;code&gt;7065196&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/04e7c6e0a24bd2d7691ae641e2dc0e6d538dcdfd&quot;&gt;&lt;code&gt;04e7c6e&lt;/code&gt;&lt;/a&gt; docs: update deprecation notice of &lt;a href=&quot;https://eslint.org/docs/rules/no-return-await&quot;&gt;&lt;code&gt;no-return-await&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18433&quot;&gt;#18433&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e7635126f36145b47fe5d135ab258af43b2715c9&quot;&gt;&lt;code&gt;e763512&lt;/code&gt;&lt;/a&gt; docs: Link global ignores section in config object property list (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18430&quot;&gt;#18430&lt;/a&gt;) (MaoShizhong)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ac7f718de66131187302387fc26907c4c93196f9&quot;&gt;&lt;code&gt;ac7f718&lt;/code&gt;&lt;/a&gt; docs: reflect release of v9 in config migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18412&quot;&gt;#18412&lt;/a&gt;) (Peter Briggs)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0de0909e001191a3464077d37e8c0b3f67e9a1cb&quot;&gt;&lt;code&gt;0de0909&lt;/code&gt;&lt;/a&gt; docs: fix grammar in configuration file resolution (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18419&quot;&gt;#18419&lt;/a&gt;) (Mike McCready)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58e271924aeb8ac2b8864845cd787ef3f9239939&quot;&gt;&lt;code&gt;58e2719&lt;/code&gt;&lt;/a&gt; chore: update dependencies for v9.3.0 release (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18469&quot;&gt;#18469&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b681ecbdf0882cbb7902682a9d35c1e76ac76c30&quot;&gt;&lt;code&gt;b681ecb&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/06f1d1cd874dfc40a6651b08d766f6522a67b3f0&quot;&gt;&lt;code&gt;06f1d1c&lt;/code&gt;&lt;/a&gt; chore: update dependency @humanwhocodes/retry to ^0.3.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18463&quot;&gt;#18463&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a63ed722a64040d2be90f36e45f1f5060a9fe28e&quot;&gt;&lt;code&gt;a63ed72&lt;/code&gt;&lt;/a&gt; refactor: Use &lt;code&gt;node:&lt;/code&gt; protocol for built-in Node.js modules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18434&quot;&gt;#18434&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/040700a7a19726bb9568fc190bff95e88fb87269&quot;&gt;&lt;code&gt;040700a&lt;/code&gt;&lt;/a&gt; chore: update dependency markdownlint-cli to ^0.40.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18425&quot;&gt;#18425&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f47847c1b45ef1ac5f05f3a37f5f8c46b860c57f&quot;&gt;&lt;code&gt;f47847c&lt;/code&gt;&lt;/a&gt; chore: update actions/stale action to v9 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18426&quot;&gt;#18426&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c18ad252c280443e85f788c70ce597e1941f8ff5&quot;&gt;&lt;code&gt;c18ad25&lt;/code&gt;&lt;/a&gt; chore: update actions/upload-artifact action to v4 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18427&quot;&gt;#18427&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27e3060f7519d84501a11218343c34df4947b303&quot;&gt;&lt;code&gt;27e3060&lt;/code&gt;&lt;/a&gt; chore: Disable documentation label (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18423&quot;&gt;#18423&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Introducing ESLint Compatibility Utilities</title>
    <link href="https://eslint.org/blog/2024/05/eslint-compatibility-utilities/"/>
    <updated>2024-05-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/05/eslint-compatibility-utilities/</id>
    <content type="html">&lt;p&gt;The release of ESLint v9.0.0 brought with it the rollout of the &lt;a href=&quot;https://eslint.org/blog/2023/10/flat-config-rollout-plans/&quot;&gt;new configuration system&lt;/a&gt;, but also a series of changes to the &lt;a href=&quot;https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/&quot;&gt;rules API&lt;/a&gt;. These changes are necessary in order to prepare ESLint for implementing &lt;a href=&quot;https://github.com/eslint/rfcs/blob/main/designs/2022-languages/README.md&quot;&gt;language plugins&lt;/a&gt;, which will give ESLint the ability to natively lint languages other than JavaScript. As a result, plugin authors needed to update their rules to work with v9.0.0, and unfortunately, that means some of the plugins you rely on may not have been updated yet. That’s why we’re releasing the compatibility utilities.&lt;/p&gt;
&lt;h2 id=&quot;how-to-know-if-the-compatibility-utilities-will-help&quot; tabindex=&quot;-1&quot;&gt;How to know if the compatibility utilities will help&lt;/h2&gt;
&lt;p&gt;These utilities may help if you encounter any of the following errors while running ESLint:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;TypeError: context.getScope is not a &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;TypeError: context.getAncestors is not a &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;TypeError: context.markVariableAsUsed is not a &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;TypeError: context.getDeclaredVariables is not a &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These errors mean that the plugin rules have not been updated to the latest ESLint rule API.&lt;/p&gt;
&lt;h2 id=&quot;using-the-compatibility-utilities&quot; tabindex=&quot;-1&quot;&gt;Using the compatibility utilities&lt;/h2&gt;
&lt;p&gt;First, install the &lt;a href=&quot;https://npmjs.com/package/@eslint/compat&quot;&gt;&lt;code&gt;@eslint/compat&lt;/code&gt;&lt;/a&gt; package using npm or any npm-compatible CLI:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; @eslint/compat &lt;span class=&quot;token parameter variable&quot;&gt;-D&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# or&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;yarn&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; @eslint/compat &lt;span class=&quot;token parameter variable&quot;&gt;-D&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# or&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; @eslint/compat &lt;span class=&quot;token parameter variable&quot;&gt;-D&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# or&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;bun &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; @eslint/compat &lt;span class=&quot;token parameter variable&quot;&gt;-D&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, use the &lt;code&gt;fixupPluginRules()&lt;/code&gt; function in your &lt;code&gt;eslint.config.js&lt;/code&gt; file to wrap the plugin in a compatibility layer:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// eslint.config.js&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; fixupPluginRules &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@eslint/compat&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; example &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint-plugin-example&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;example&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;fixupPluginRules&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;example&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// other config&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After that, the plugin should work as expected.&lt;/p&gt;
&lt;h2 id=&quot;fixing-an-imported-configuration&quot; tabindex=&quot;-1&quot;&gt;Fixing an imported configuration&lt;/h2&gt;
&lt;p&gt;If you are importing a flat-style configuration from another package that references plugins, you can use the &lt;code&gt;fixupConfigRules()&lt;/code&gt; function to wrap all of the plugins found, like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// eslint.config.js&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; fixupConfigRules &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@eslint/compat&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; recommended &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint-plugin-example/configs/recommended.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;fixupConfigRules&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;recommended&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// other config&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;fixupConfigRules()&lt;/code&gt; function accepts both a single object and an array of objects to easily update any configuration you’re using.&lt;/p&gt;
&lt;h2 id=&quot;using-with-flatcompat&quot; tabindex=&quot;-1&quot;&gt;Using with &lt;code&gt;FlatCompat&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;If you are using &lt;code&gt;FlatCompat&lt;/code&gt; from the &lt;a href=&quot;https://npmjs.com/package/@eslint/eslintrc&quot;&gt;&lt;code&gt;@eslint/eslintrc&lt;/code&gt;&lt;/a&gt; package, you may not be able to access each of the plugins that are referenced inside of an eslintrc-style configuration. In that case, you can use the &lt;code&gt;fixupConfigRules()&lt;/code&gt; function to wrap all plugins, as in this example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// eslint.config.js&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; fixupConfigRules &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@eslint/compat&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; FlatCompat &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@eslint/eslintrc&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; flatCompat &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;FlatCompat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;fixupConfigRules&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        flatCompat&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;extends&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;my-config&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// other config&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While this example shows how to use &lt;code&gt;fixupConfigRules()&lt;/code&gt; with the &lt;code&gt;extends()&lt;/code&gt; method, any method on &lt;code&gt;FlatCompat&lt;/code&gt; works.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;One of the benefits of the new configuration system is that it allows us the ability to patch plugins and configs that haven’t yet been updated by their maintainers. We know it can be frustrating to migrate to ESLint v9.0.0 and have your configuration not work, and that’s why we’re committed to providing packages like &lt;code&gt;@eslint/eslintrc&lt;/code&gt; and &lt;code&gt;@eslint/compat&lt;/code&gt; to help aid the transition.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.2.0 released</title>
    <link href="https://eslint.org/blog/2024/05/eslint-v9.2.0-released/"/>
    <updated>2024-05-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/05/eslint-v9.2.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-case-declarations&quot;&gt;no-case-declarations&lt;/a&gt; rule now provides &lt;a href=&quot;https://eslint.org/docs/latest/use/core-concepts#rule-suggestions&quot;&gt;suggestions&lt;/a&gt; for some of the problems reported by this rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8485d76134bdbd29230780fadc284c482cd1d963&quot;&gt;&lt;code&gt;8485d76&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-case-declarations&quot;&gt;&lt;code&gt;no-case-declarations&lt;/code&gt;&lt;/a&gt; add suggestions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18388&quot;&gt;#18388&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a498f35cef4df9c9f5387fafafaf482d913d5765&quot;&gt;&lt;code&gt;a498f35&lt;/code&gt;&lt;/a&gt; feat: update Unicode letter detection in &lt;a href=&quot;https://eslint.org/docs/rules/capitalized-comments&quot;&gt;capitalized-comments&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18375&quot;&gt;#18375&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eeec41346738afb491958fdbf0bcf45a302ca1b7&quot;&gt;&lt;code&gt;eeec413&lt;/code&gt;&lt;/a&gt; fix: do not throw when defining a global named &lt;code&gt;__defineSetter__&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18364&quot;&gt;#18364&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f5df509a4bc00cff2c62b90fab184bdf0231322&quot;&gt;&lt;code&gt;0f5df50&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1579ce05cbb523cb5b04ff77fab06ba1ecd18dce&quot;&gt;&lt;code&gt;1579ce0&lt;/code&gt;&lt;/a&gt; docs: update wording regarding indirect eval (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18394&quot;&gt;#18394&lt;/a&gt;) (Kirk Waiblinger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f12a02c5749d31beefe46d2753a0d68b56f2281d&quot;&gt;&lt;code&gt;f12a02c&lt;/code&gt;&lt;/a&gt; docs: update to eslint v9 in custom-rule-tutorial (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18383&quot;&gt;#18383&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3466052802a1586560ad56a8128d603284d58c2&quot;&gt;&lt;code&gt;b346605&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18413&quot;&gt;#18413&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4c18e05fc866b73218dbe58b760546f39a2a620&quot;&gt;&lt;code&gt;c4c18e0&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/284722ca8375c9a9e4f741bfdd78e765542da61f&quot;&gt;&lt;code&gt;284722c&lt;/code&gt;&lt;/a&gt; chore: package.json update for eslint-config-eslint release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/347d44f96b3d9d690e4f7380029e8a5a60b2fdc7&quot;&gt;&lt;code&gt;347d44f&lt;/code&gt;&lt;/a&gt; chore: remove eslintrc export from eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18400&quot;&gt;#18400&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f316e2009a8aa902fa447a49b6b5e560848f0711&quot;&gt;&lt;code&gt;f316e20&lt;/code&gt;&lt;/a&gt; ci: run tests in Node.js 22 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18393&quot;&gt;#18393&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.1.1 released</title>
    <link href="https://eslint.org/blog/2024/04/eslint-v9.1.1-released/"/>
    <updated>2024-04-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/04/eslint-v9.1.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Fixed an issue that would sometimes cause an outdated version of &lt;a href=&quot;https://www.npmjs.com/package/@eslint/create-config&quot;&gt;@eslint/create-config&lt;/a&gt; to be used when running &lt;code&gt;npx eslint --init&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a26b40279f283853717236b44602b27b57f0b627&quot;&gt;&lt;code&gt;a26b402&lt;/code&gt;&lt;/a&gt; fix: use @eslint/create-config latest (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18373&quot;&gt;#18373&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.1.0 released</title>
    <link href="https://eslint.org/blog/2024/04/eslint-v9.1.0-released/"/>
    <updated>2024-04-19T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/04/eslint-v9.1.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is the first minor release of ESLint following the major release of ESLint v9.0.0 earlier this month.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Intl&lt;/code&gt; is now recognized as a built-in global unless &lt;code&gt;languageOptions.ecmaVersion&lt;/code&gt; is set to 3 or 5.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; rule no longer reports &lt;code&gt;while (true)&lt;/code&gt; loops as problems by default.&lt;/li&gt;
&lt;li&gt;A configuration that contains a &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files#excluding-files-with-ignores&quot;&gt;non-global &lt;code&gt;ignores&lt;/code&gt;&lt;/a&gt; pattern list will no longer cause incorrect results when the &lt;a href=&quot;https://eslint.org/docs/latest/use/command-line-interface#--no-ignore&quot;&gt;&lt;code&gt;--no-ignore&lt;/code&gt; CLI flag&lt;/a&gt; is used, or when the &lt;code&gt;ESLint&lt;/code&gt; constructor option &lt;code&gt;ignore&lt;/code&gt; is set to &lt;code&gt;false&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03068f13c0e3e6b34b8ca63628cfc79dd256feac&quot;&gt;&lt;code&gt;03068f1&lt;/code&gt;&lt;/a&gt; feat: Provide helpful error message for nullish configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18357&quot;&gt;#18357&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/751b518f02b1e9f4f0cb4a4007ffacb1be2246af&quot;&gt;&lt;code&gt;751b518&lt;/code&gt;&lt;/a&gt; feat: replace dependency graphemer with &lt;code&gt;Intl.Segmenter&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18110&quot;&gt;#18110&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d11e567baff575146fd267b3765ab2c788aa1e5&quot;&gt;&lt;code&gt;4d11e56&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;name&lt;/code&gt; to eslint configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18289&quot;&gt;#18289&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1cbe1f6d38272784307c260f2375ab30e68716e8&quot;&gt;&lt;code&gt;1cbe1f6&lt;/code&gt;&lt;/a&gt; feat: allow &lt;code&gt;while(true)&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;&lt;code&gt;no-constant-condition&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18286&quot;&gt;#18286&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0db676f9c64d2622ada86b653136d2bda4f0eee0&quot;&gt;&lt;code&gt;0db676f&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;Intl&lt;/code&gt; in es6 globals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18318&quot;&gt;#18318&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d189586d60f9beda7be8cdefd4156c023c4fdde&quot;&gt;&lt;code&gt;8d18958&lt;/code&gt;&lt;/a&gt; fix: Remove name from eslint/js packages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18368&quot;&gt;#18368&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/594eb0e5c2b14a418d686c33d2d40fb439888b70&quot;&gt;&lt;code&gt;594eb0e&lt;/code&gt;&lt;/a&gt; fix: do not crash on error in &lt;code&gt;fs.walk&lt;/code&gt; filter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18295&quot;&gt;#18295&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d8cf6350ce3dc417d6e23922e6d4ad03952aaaa&quot;&gt;&lt;code&gt;0d8cf63&lt;/code&gt;&lt;/a&gt; fix: EMFILE errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18313&quot;&gt;#18313&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1ac0b5c035bfdff7be08b69e89e1470a7becac3&quot;&gt;&lt;code&gt;e1ac0b5&lt;/code&gt;&lt;/a&gt; fix: --inspect-config only for flat config and respect -c (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18306&quot;&gt;#18306&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/09675e153169d4d0f4a85a95007dcd17d34d70c7&quot;&gt;&lt;code&gt;09675e1&lt;/code&gt;&lt;/a&gt; fix: &lt;code&gt;--no-ignore&lt;/code&gt; should not apply to non-global ignores (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18334&quot;&gt;#18334&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb50077fec497fbf01d754fc75aa22cff43ef066&quot;&gt;&lt;code&gt;fb50077&lt;/code&gt;&lt;/a&gt; docs: include notes about globals in migration-guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18356&quot;&gt;#18356&lt;/a&gt;) (Gabriel Rohden)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71c771fb390cf178220d06fd7316033a385128a9&quot;&gt;&lt;code&gt;71c771f&lt;/code&gt;&lt;/a&gt; docs: Fix missing accessible name for scroll-to-top link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18329&quot;&gt;#18329&lt;/a&gt;) (Germán Freixinós)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/200fd4e3223d1ad22dca3dc79aa6eaa860fefe32&quot;&gt;&lt;code&gt;200fd4e&lt;/code&gt;&lt;/a&gt; docs: indicate eslintrc mode for &lt;code&gt;.eslintignore&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18285&quot;&gt;#18285&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16b6a8b469d2e0ba6d904b9e858711590568b246&quot;&gt;&lt;code&gt;16b6a8b&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df5f8a9bc1042c13f1969c9fbd8c72eee0662daa&quot;&gt;&lt;code&gt;df5f8a9&lt;/code&gt;&lt;/a&gt; docs: &lt;code&gt;paths&lt;/code&gt; and &lt;code&gt;patterns&lt;/code&gt; difference in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18273&quot;&gt;#18273&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c537d76327586616b7ca5d00e76eaf6c76e6bcd2&quot;&gt;&lt;code&gt;c537d76&lt;/code&gt;&lt;/a&gt; docs: update &lt;code&gt;npm init @eslint/config&lt;/code&gt; generated file names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18298&quot;&gt;#18298&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1e305defaab98605d79c81d67ee5a48558c458a&quot;&gt;&lt;code&gt;e1e305d&lt;/code&gt;&lt;/a&gt; docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/linebreak-style&quot;&gt;&lt;code&gt;linebreak-style&lt;/code&gt;&lt;/a&gt; examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18262&quot;&gt;#18262&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/113f51ec4e52d3082a74b9682239a6e28d1a70ee&quot;&gt;&lt;code&gt;113f51e&lt;/code&gt;&lt;/a&gt; docs: Mention package.json config support dropped (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18305&quot;&gt;#18305&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c353215e05818e17e83192acbb4d3730c716afa&quot;&gt;&lt;code&gt;5c35321&lt;/code&gt;&lt;/a&gt; docs: add eslintrc-only note to &lt;code&gt;--rulesdir&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18281&quot;&gt;#18281&lt;/a&gt;) (Adam Lui 刘展鹏)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fa66220ad130eeb69cfa0207d3896b7bb09c576&quot;&gt;&lt;code&gt;1fa6622&lt;/code&gt;&lt;/a&gt; build: do not use &lt;code&gt;--force&lt;/code&gt; flag to install dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18284&quot;&gt;#18284&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d9a2983e1301599117cf554aa6a9bd44b84f2e55&quot;&gt;&lt;code&gt;d9a2983&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js to v9.1.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18367&quot;&gt;#18367&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/50d406d68c0304370fa47d156a407258b68dfa1b&quot;&gt;&lt;code&gt;50d406d&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/155c71c210aaa7235ddadabb067813d8b1c76f65&quot;&gt;&lt;code&gt;155c71c&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0588fc5ecb87fddd70e1848e417ba712b48473c3&quot;&gt;&lt;code&gt;0588fc5&lt;/code&gt;&lt;/a&gt; refactor: Move directive gathering to SourceCode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18328&quot;&gt;#18328&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9048e2184c19799bb9b8a5908345d4ce05020c41&quot;&gt;&lt;code&gt;9048e21&lt;/code&gt;&lt;/a&gt; chore: lint &lt;code&gt;docs/src/_data&lt;/code&gt; js files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18335&quot;&gt;#18335&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/48207908a8291916a124af60e02d0327276f8957&quot;&gt;&lt;code&gt;4820790&lt;/code&gt;&lt;/a&gt; chore: upgrade globals@15.0.0 dev dependency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18332&quot;&gt;#18332&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/698d9ff2c9c4e24836d69358b93d42c356eb853b&quot;&gt;&lt;code&gt;698d9ff&lt;/code&gt;&lt;/a&gt; chore: upgrade jsdoc &amp;amp; unicorn plugins in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18333&quot;&gt;#18333&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/32c08cf66536e595e93284500b0b8d702e30cfd8&quot;&gt;&lt;code&gt;32c08cf&lt;/code&gt;&lt;/a&gt; chore: drop Node &amp;lt; 18 and use @eslint/js v9 in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18323&quot;&gt;#18323&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a76fb55004ea095c68dde134ca7db0212c93c86e&quot;&gt;&lt;code&gt;a76fb55&lt;/code&gt;&lt;/a&gt; chore: @eslint-community/eslint-plugin-eslint-comments v4.3.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18319&quot;&gt;#18319&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78e45b1d8d6b673ced233ca82b9ff1dddcdd1fec&quot;&gt;&lt;code&gt;78e45b1&lt;/code&gt;&lt;/a&gt; chore: eslint-plugin-eslint-plugin v6.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18316&quot;&gt;#18316&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/36103a52432fffa20b90f2c6960757e6b9dc778f&quot;&gt;&lt;code&gt;36103a5&lt;/code&gt;&lt;/a&gt; chore: eslint-plugin-n v17.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18315&quot;&gt;#18315&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.0.0 released</title>
    <link href="https://eslint.org/blog/2024/04/eslint-v9.0.0-released/"/>
    <updated>2024-04-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/04/eslint-v9.0.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the significant changes, both breaking and non-breaking, you need to know about when upgrading from ESLint v8.x to ESLint v9.0.0.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Because this is a major release, you may not automatically be upgraded by npm. To ensure you are using this version, run:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@9.0.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/latest/use/migrate-to-9.0.0&quot;&gt;migration guide&lt;/a&gt; describing the breaking changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h3 id=&quot;node.js-%3C-v18.18.0%2C-v19-no-longer-supported&quot; tabindex=&quot;-1&quot;&gt;Node.js &amp;lt; v18.18.0, v19 no longer supported&lt;/h3&gt;
&lt;p&gt;As of this post, Node.js v20.x is the LTS release, and as such we are &lt;a href=&quot;https://github.com/eslint/eslint/issues/17595&quot;&gt;dropping support&lt;/a&gt; for all versions of Node.js prior to v18.18.0 as well as v19.x.&lt;/p&gt;
&lt;h3 id=&quot;flat-config-is-now-the-default-and-has-some-changes&quot; tabindex=&quot;-1&quot;&gt;Flat config is now the default and has some changes&lt;/h3&gt;
&lt;p&gt;Flat config is now the default configuration format for ESLint and eslintrc is officially deprecated. To continue using a eslintrc configuration file, you’ll need to set the &lt;code&gt;ESLINT_USE_FLAT_CONFIG&lt;/code&gt; environment variable to &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This change affects users, plugin developers, and integrators as many aspects of ESLint had to change to make this happen. Please see &lt;a href=&quot;https://eslint.org/blog/2023/10/flat-config-rollout-plans/&quot;&gt;our previous blog post&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;This release also introduces the &lt;a href=&quot;https://eslint.org/blog/2024/04/eslint-config-inspector/&quot;&gt;config inspector&lt;/a&gt;, which can be launched on the command line using &lt;code&gt;--inspect-config&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;removed-all-formatters-except-stylish%2C-html%2C-json%2C-and-json-with-meta&quot; tabindex=&quot;-1&quot;&gt;Removed all formatters except &lt;code&gt;stylish&lt;/code&gt;, &lt;code&gt;html&lt;/code&gt;, &lt;code&gt;json&lt;/code&gt;, and &lt;code&gt;json-with-meta&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following formatters have been removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;checkstyle&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;compact&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jslint-xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;junit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tap&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unix&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;visualstudio&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are using these formatters currently, you’ll need to install the &lt;a href=&quot;https://github.com/fregante/eslint-formatters&quot;&gt;standalone packages&lt;/a&gt; for use with ESLint v9.0.0.&lt;/p&gt;
&lt;h3 id=&quot;removed-valid-jsdoc-and-require-jsdoc-rules&quot; tabindex=&quot;-1&quot;&gt;Removed &lt;code&gt;valid-jsdoc&lt;/code&gt; and &lt;code&gt;require-jsdoc&lt;/code&gt; rules&lt;/h3&gt;
&lt;p&gt;We have removed &lt;a href=&quot;https://github.com/eslint/eslint/issues/15820&quot;&gt;&lt;code&gt;valid-jsdoc&lt;/code&gt; and &lt;code&gt;require-jsdoc&lt;/code&gt;&lt;/a&gt;. We recommend using the &lt;a href=&quot;https://github.com/gajus/eslint-plugin-jsdoc&quot;&gt;&lt;code&gt;eslint-plugin-jsdoc&lt;/code&gt;&lt;/a&gt; plugin instead.&lt;/p&gt;
&lt;h3 id=&quot;removed-deprecated-methods-on-context-and-sourcecode&quot; tabindex=&quot;-1&quot;&gt;Removed deprecated methods on &lt;code&gt;context&lt;/code&gt; and &lt;code&gt;SourceCode&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;As we &lt;a href=&quot;https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/&quot;&gt;announced in September&lt;/a&gt;, we have removed a lot of deprecated methods from &lt;code&gt;context&lt;/code&gt; and replaced them with methods on &lt;code&gt;SourceCode&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;updated-eslint%3Arecommended&quot; tabindex=&quot;-1&quot;&gt;Updated &lt;code&gt;eslint:recommended&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;eslint:recommended&lt;/code&gt; configuration is updated to include new rules that we feel are important, and to remove deprecated and less important rules.&lt;/p&gt;
&lt;h3 id=&quot;new-rule%3A-no-useless-assignment&quot; tabindex=&quot;-1&quot;&gt;New rule: &lt;code&gt;no-useless-assignment&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;ESLint v9.0.0 introduces a new rule, &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-useless-assignment&quot;&gt;&lt;code&gt;no-useless-assignment&lt;/code&gt;&lt;/a&gt;, that is designed to catch situations where you’ve assigned a value to a variable and that value is never used. For example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; id &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1234&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;      &lt;span class=&quot;token comment&quot;&gt;// 1234 is never used&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;id &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calculateId&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;updates-to-existing-rules&quot; tabindex=&quot;-1&quot;&gt;Updates to existing rules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/complexity&quot;&gt;&lt;code&gt;complexity&lt;/code&gt;&lt;/a&gt; rule now also takes into account optional chaining and default values in destructuring patterns and parameters.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-fallthrough&quot;&gt;&lt;code&gt;no-fallthrough&lt;/code&gt;&lt;/a&gt; rule has a new option &lt;code&gt;reportUnusedFallthroughComment&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-inner-declarations&quot;&gt;&lt;code&gt;no-inner-declarations&lt;/code&gt;&lt;/a&gt; rule has a new default behavior. In v8.x, the rule would flag any functions defined inside of blocks as errors because this behavior was undefined in early versions of JavaScript. As of ES 2015, block-scoped function declarations are well-defined and so we changed the default behavior to not warn on block-scoped functions.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; rule now highlights the offending characters in a regular expression rather than the entire regular expression.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; rule changed the behavior of &lt;code&gt;paths&lt;/code&gt;. In v8.x, if multiple entries in the &lt;code&gt;paths&lt;/code&gt; array of your configuration for The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; rule had the same &lt;code&gt;name&lt;/code&gt; property, only the last one would apply. In v9.0.0, all entries apply, allowing for specifying different error messages for different imported names.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; rule has new options &lt;code&gt;allowImportNames&lt;/code&gt; and &lt;code&gt;allowImportNamePattern&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; rule &lt;code&gt;varsIgnorePattern&lt;/code&gt; option no longer applies to caught error variables.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; rule has a new default value for the &lt;code&gt;caughtErrors&lt;/code&gt; option (changed from &lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt; to &lt;code&gt;&amp;quot;all&amp;quot;&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; rule has a new option &lt;code&gt;ignoreClassWithStaticInitBlock&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; rule has a new option &lt;code&gt;reportUsedIgnorePattern&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-useless-computed-key&quot;&gt;&lt;code&gt;no-useless-computed-key&lt;/code&gt;&lt;/a&gt; rule has a new default value for the &lt;code&gt;enforceForClassMembers&lt;/code&gt; option (changed from &lt;code&gt;false&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;).
This is intended to help avoiding misleading comments that can occur as a result of refactoring.
When this option is set to &lt;code&gt;true&lt;/code&gt;, the rule will prohibit a fallthrough comment if a case can never fallthrough.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;new-api-loadeslint()&quot; tabindex=&quot;-1&quot;&gt;New API &lt;code&gt;loadESLint()&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;ESLint now exports a new function &lt;a href=&quot;https://eslint.org/docs/latest/integrate/nodejs-api#loadeslint&quot;&gt;&lt;code&gt;loadESLint()&lt;/code&gt;&lt;/a&gt; from its main entry point. Integrations can use this function to get either the &lt;code&gt;ESLint&lt;/code&gt; class (former &lt;code&gt;FlatESLint&lt;/code&gt; class) or the &lt;code&gt;LegacyESLint&lt;/code&gt; class (former &lt;code&gt;ESLint&lt;/code&gt; class) and thus easily swap between flat config and eslintrc APIs.&lt;/p&gt;
&lt;h3 id=&quot;changes-to-how-you-write-rules&quot; tabindex=&quot;-1&quot;&gt;Changes to how you write rules&lt;/h3&gt;
&lt;p&gt;We’ve made multiple changes to help prevent errors in rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Function-style rules will stop working in v9.0.0. Function-style rules are rules created by exporting a function from a file rather than exporting an object with a &lt;code&gt;create()&lt;/code&gt; method.&lt;/li&gt;
&lt;li&gt;When a rule doesn’t have &lt;code&gt;meta.schema&lt;/code&gt; specified, a default schema of &lt;code&gt;[]&lt;/code&gt; will be applied. This means that rules without a schema will be assumed to have no options, which in turn means that validation will fail if options are provided.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;stricter-ruletester-validations&quot; tabindex=&quot;-1&quot;&gt;Stricter &lt;code&gt;RuleTester&lt;/code&gt; validations&lt;/h3&gt;
&lt;p&gt;This release adds more checks in &lt;code&gt;RuleTester&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Messages cannot have unsubstituted placeholders.&lt;/li&gt;
&lt;li&gt;Suggestions must change the code.&lt;/li&gt;
&lt;li&gt;Suggestion messages must be unique for the same lint problem.&lt;/li&gt;
&lt;li&gt;Suggestions must generate valid syntax.&lt;/li&gt;
&lt;li&gt;Test case &lt;code&gt;output&lt;/code&gt; must be different from &lt;code&gt;code&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Test error objects must specify &lt;code&gt;message&lt;/code&gt; or &lt;code&gt;messageId&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Test error object must specify &lt;code&gt;suggestions&lt;/code&gt; if the actual error provides suggestions.&lt;/li&gt;
&lt;li&gt;Test suggestion objects must specify &lt;code&gt;desc&lt;/code&gt; or &lt;code&gt;messageId&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Test suggestion objects must specify &lt;code&gt;output&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filename&lt;/code&gt; and &lt;code&gt;only&lt;/code&gt; properties of test objects must be of the expected type (&lt;code&gt;string&lt;/code&gt; and &lt;code&gt;boolean&lt;/code&gt;, respectively).&lt;/li&gt;
&lt;li&gt;Duplicate tests cause an error.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;the---output-file-flag-now-guarantees-a-file-is-output&quot; tabindex=&quot;-1&quot;&gt;The &lt;code&gt;--output-file&lt;/code&gt; flag now guarantees a file is output&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;--output-file&lt;/code&gt; CLI flag is designed to output the results of the ESLint run to specified file. Prior to this release, no file would be output if linting passed with no errors or warnings. In v9.0.0, an empty file will be output when linting passes without any errors or warnings.&lt;/p&gt;
&lt;h3 id=&quot;better-scope-analysis&quot; tabindex=&quot;-1&quot;&gt;Better scope analysis&lt;/h3&gt;
&lt;p&gt;In v9.0.0, we updated the behavior of &lt;code&gt;eslint-scope&lt;/code&gt; to fix a couple of longstanding bugs:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Previously, ESLint would treat &lt;code&gt;(&amp;quot;use strict&amp;quot;)&lt;/code&gt; as a strict mode directive even though it is not. We fixed the behavior so only valid strict mode directives are honored.&lt;/li&gt;
&lt;li&gt;The containing scope of a class &lt;code&gt;extends&lt;/code&gt; clause was incorrectly set to be the scope containing the class when it should have been the class scope itself. This has been fixed.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;codepath%23currentsegments-removed&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;CodePath#currentSegments&lt;/code&gt; removed&lt;/h2&gt;
&lt;p&gt;As announced in our &lt;a href=&quot;https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/#codepath%23currentsegments&quot;&gt;previous post&lt;/a&gt;, &lt;code&gt;CodePath#currentSegments&lt;/code&gt; has been removed from the rules API. Please refer to the post for more details.&lt;/p&gt;
&lt;h3 id=&quot;precalculated-code-paths&quot; tabindex=&quot;-1&quot;&gt;Precalculated Code Paths&lt;/h3&gt;
&lt;p&gt;ESLint v9.0.0 now precalculates code path information before the traversal used by rules. As a result, the code path information is now complete regardless of where it is accessed inside of a rule.&lt;/p&gt;
&lt;h3 id=&quot;multiple-%2F*-eslint-*%2F-comments-for-the-same-rule-are-now-disallowed&quot; tabindex=&quot;-1&quot;&gt;Multiple &lt;code&gt;/* eslint */&lt;/code&gt; comments for the same rule are now disallowed&lt;/h3&gt;
&lt;p&gt;In ESLint v8.x, if the file being linted contained multiple &lt;code&gt;/* eslint */&lt;/code&gt; configuration comments for the same rule, the last one would be applied, while the others would be silently ignored.&lt;/p&gt;
&lt;p&gt;In ESLint v9.0.0, the first one is applied, while the others are reported as lint errors.&lt;/p&gt;
&lt;h3 id=&quot;--quiet-option-is-more-performant&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;--quiet&lt;/code&gt; option is more performant&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;--quiet&lt;/code&gt; option hides all warnings in the ESLint console. In v9.0.0, we are making a performance improvement by also not executing any rules set to &lt;code&gt;&amp;quot;warn&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;running-eslint-with-no-file-arguments&quot; tabindex=&quot;-1&quot;&gt;Running &lt;code&gt;eslint&lt;/code&gt; with no file arguments&lt;/h3&gt;
&lt;p&gt;If you are using flat config and you don’t pass any file arguments to the CLI, the CLI will &lt;a href=&quot;https://github.com/eslint/eslint/issues/14308&quot;&gt;default to linting the current directory&lt;/a&gt;, which means you can type &lt;code&gt;npx eslint&lt;/code&gt; and it will just work. (Doing the same with an eslintrc config file will result in an error.)&lt;/p&gt;
&lt;h3 id=&quot;unused-disable-directives-cause-warnings-by-default&quot; tabindex=&quot;-1&quot;&gt;Unused disable directives cause warnings by default&lt;/h3&gt;
&lt;p&gt;ESLint has long been able to flag unused disable directives. In this release, we’ve enabled warnings for unused disable directives by default. You can modify this value in your config file with &lt;code&gt;linterOptions.reportUnusedDisableDirectives&lt;/code&gt; or on the command line using &lt;code&gt;--report-unused-disable-directives-severity&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;performance-statistics-available-in-formatters-via---stats&quot; tabindex=&quot;-1&quot;&gt;Performance statistics available in formatters via &lt;code&gt;--stats&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The information from the &lt;a href=&quot;https://eslint.org/docs/latest/extend/custom-rules#profile-rule-performance&quot;&gt;rule profiler&lt;/a&gt; is now available inside of formatters when the &lt;a href=&quot;https://eslint.org/docs/latest/extend/stats#cli-usage&quot;&gt;&lt;code&gt;--stats&lt;/code&gt; flag&lt;/a&gt; is used in the CLI. This allows anyone to create custom visualizations of the performance information that ESLint tracks.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7cf3bd29f25a0bab4102a51029bf47c50f406b5&quot;&gt;&lt;code&gt;b7cf3bd&lt;/code&gt;&lt;/a&gt; fix!: correct &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;&lt;code&gt;camelcase&lt;/code&gt;&lt;/a&gt; rule schema for &lt;code&gt;allow&lt;/code&gt; option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18232&quot;&gt;#18232&lt;/a&gt;) (eMerzh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/09bd7fe09ad255a263286e90accafbe2bf04ccfc&quot;&gt;&lt;code&gt;09bd7fe&lt;/code&gt;&lt;/a&gt; feat!: move AST traversal into SourceCode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18167&quot;&gt;#18167&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79a95eb7da7fe657b6448c225d4f8ac31117456a&quot;&gt;&lt;code&gt;79a95eb&lt;/code&gt;&lt;/a&gt; feat!: disallow multiple configuration comments for same rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18157&quot;&gt;#18157&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/916364692bae6a93c10b5d48fc1e9de1677d0d09&quot;&gt;&lt;code&gt;9163646&lt;/code&gt;&lt;/a&gt; feat!: Rule Tester checks for missing placeholder data in the message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18073&quot;&gt;#18073&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c4d51d55fa5435ab18b6bf46f6b97df0f480ae7&quot;&gt;&lt;code&gt;3c4d51d&lt;/code&gt;&lt;/a&gt; feat!: default for &lt;code&gt;enforceForClassMembers&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;&lt;code&gt;no-useless-computed-key&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18054&quot;&gt;#18054&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/47e60f85e0c3f275207bb4be9b5947166a190477&quot;&gt;&lt;code&gt;47e60f8&lt;/code&gt;&lt;/a&gt; feat!: Stricter rule test validations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17654&quot;&gt;#17654&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a945890105d307541dcbff15f6438c19b476ade&quot;&gt;&lt;code&gt;1a94589&lt;/code&gt;&lt;/a&gt; feat!: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; default caughtErrors to ‘all’ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18043&quot;&gt;#18043&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57089cb5166acf8b8bdba8a8dbeb0a129f841478&quot;&gt;&lt;code&gt;57089cb&lt;/code&gt;&lt;/a&gt; feat!: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; allow multiple config entries for same path (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18021&quot;&gt;#18021&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e1d54960051b59e1c731fa44c2ef843290b1335&quot;&gt;&lt;code&gt;2e1d549&lt;/code&gt;&lt;/a&gt; feat!: detect duplicate test cases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17955&quot;&gt;#17955&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/701f1afbee34e458b56d2dfa36d9153d6aebea3a&quot;&gt;&lt;code&gt;701f1af&lt;/code&gt;&lt;/a&gt; feat!: no-inner-declaration new default behaviour and option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17885&quot;&gt;#17885&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bde51055530d4a71bd9f48c90ed7de9c0b767d86&quot;&gt;&lt;code&gt;bde5105&lt;/code&gt;&lt;/a&gt; fix!: handle &lt;code&gt;--output-file&lt;/code&gt; for empty output when saving to disk (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17957&quot;&gt;#17957&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/07107a5904c2580243971c8ad7f26a04738b712e&quot;&gt;&lt;code&gt;07107a5&lt;/code&gt;&lt;/a&gt; fix!: upgrade eslint-scope@8.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17942&quot;&gt;#17942&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ee0f6ca5d756da647e4e76bf3daa82a5905a792&quot;&gt;&lt;code&gt;3ee0f6c&lt;/code&gt;&lt;/a&gt; fix!: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; &lt;code&gt;varsIgnorePattern&lt;/code&gt; behavior with catch arguments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17932&quot;&gt;#17932&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51f8bc836bf0b13dad3a897ae84259bcdaed2431&quot;&gt;&lt;code&gt;51f8bc8&lt;/code&gt;&lt;/a&gt; fix!: configuration comments with just severity should retain options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17945&quot;&gt;#17945&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d191bdd67214c33e65bd605e616ca7cc947fd045&quot;&gt;&lt;code&gt;d191bdd&lt;/code&gt;&lt;/a&gt; feat!: Remove CodePath#currentSegments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17936&quot;&gt;#17936&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/946ae00457265eb298eb169d6d48ca7ec71b9eef&quot;&gt;&lt;code&gt;946ae00&lt;/code&gt;&lt;/a&gt; feat!: FlatRuleTester -&amp;gt; RuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17922&quot;&gt;#17922&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/baff28ce8f167f564471f1d70d6e9c4b0cb1a508&quot;&gt;&lt;code&gt;baff28c&lt;/code&gt;&lt;/a&gt; feat!: remove &lt;a href=&quot;https://eslint.org/docs/rules/no-inner-declarations&quot;&gt;&lt;code&gt;no-inner-declarations&lt;/code&gt;&lt;/a&gt; from &lt;code&gt;eslint:recommended&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17920&quot;&gt;#17920&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cadfbcd468737fc9447243edd1d15058efb6d3d8&quot;&gt;&lt;code&gt;cadfbcd&lt;/code&gt;&lt;/a&gt; feat!: Rename FlatESLint to ESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17914&quot;&gt;#17914&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d1018fc5e59db0495aa4a7f501c9d3f831981f35&quot;&gt;&lt;code&gt;d1018fc&lt;/code&gt;&lt;/a&gt; feat!: skip running warnings in --quiet mode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17274&quot;&gt;#17274&lt;/a&gt;) (Maddy Miller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb81b1cb78d2692a87fd3591fdc0f96b0c95e760&quot;&gt;&lt;code&gt;fb81b1c&lt;/code&gt;&lt;/a&gt; feat!: Set default &lt;code&gt;schema: []&lt;/code&gt;, drop support for function-style rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17792&quot;&gt;#17792&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b21e1fd67d94f907d007a7a9707a3ae1cc08575&quot;&gt;&lt;code&gt;0b21e1f&lt;/code&gt;&lt;/a&gt; feat!: add two more cases to &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;&lt;code&gt;no-implicit-coercion&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17832&quot;&gt;#17832&lt;/a&gt;) (Gürgün Dayıoğlu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2916c63046603e0cdc578d3c2eef8fca5b2e8847&quot;&gt;&lt;code&gt;2916c63&lt;/code&gt;&lt;/a&gt; feat!: Switch Linter to flat config by default (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17851&quot;&gt;#17851&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/200518eb6d42de4c3b0c6ef190fc09a95718297e&quot;&gt;&lt;code&gt;200518e&lt;/code&gt;&lt;/a&gt; fix!: Parsing ‘exported’ comment using parseListConfig (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17675&quot;&gt;#17675&lt;/a&gt;) (amondev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bdd6ba138645dba0442bb0ed2ee73049df56f38d&quot;&gt;&lt;code&gt;bdd6ba1&lt;/code&gt;&lt;/a&gt; feat!: Remove valid-jsdoc and require-jsdoc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17694&quot;&gt;#17694&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12be3071d014814149e8e6d602f5c192178ca771&quot;&gt;&lt;code&gt;12be307&lt;/code&gt;&lt;/a&gt; fix!: Behavior of CLI when no arguments are passed (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17644&quot;&gt;#17644&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8fe8c5626b98840d6a8580004f6ceffeff56264f&quot;&gt;&lt;code&gt;8fe8c56&lt;/code&gt;&lt;/a&gt; feat!: Update shouldUseFlatConfig and CLI so flat config is default (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17748&quot;&gt;#17748&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60dea3e3abd6c0b6aab25437b2d0501b0d30b70c&quot;&gt;&lt;code&gt;60dea3e&lt;/code&gt;&lt;/a&gt; feat!: deprecate &lt;a href=&quot;https://eslint.org/docs/rules/no-new-symbol&quot;&gt;no-new-symbol&lt;/a&gt;, recommend &lt;a href=&quot;https://eslint.org/docs/rules/no-new-native-nonconstructor&quot;&gt;no-new-native-nonconstructor&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17710&quot;&gt;#17710&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5aa9c499da48b2d3187270d5d8ece71ad7521f56&quot;&gt;&lt;code&gt;5aa9c49&lt;/code&gt;&lt;/a&gt; feat!: check for parsing errors in suggestion fixes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16639&quot;&gt;#16639&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3e0bb03cc814e78b06a1acc4e5347b4c90d72bf&quot;&gt;&lt;code&gt;b3e0bb0&lt;/code&gt;&lt;/a&gt; feat!: assert suggestion messages are unique in rule testers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17532&quot;&gt;#17532&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e563c52e35d25f726d423cc3b1dffcd80027fd99&quot;&gt;&lt;code&gt;e563c52&lt;/code&gt;&lt;/a&gt; feat!: &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;&lt;code&gt;no-invalid-regexp&lt;/code&gt;&lt;/a&gt; make allowConstructorFlags case-sensitive (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17533&quot;&gt;#17533&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5f02c70084c4f80900c0875b08f665e1f030af2&quot;&gt;&lt;code&gt;e5f02c7&lt;/code&gt;&lt;/a&gt; fix!: &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;no-sequences&lt;/a&gt; rule schema correction (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17878&quot;&gt;#17878&lt;/a&gt;) (MHO)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ee3e9eb5df7bdfdaa1746214793ed511112be76&quot;&gt;&lt;code&gt;6ee3e9e&lt;/code&gt;&lt;/a&gt; feat!: Update &lt;code&gt;eslint:recommended&lt;/code&gt; configuration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17716&quot;&gt;#17716&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2cf85a7447777e6b499cbb5c49de919bb5c817f&quot;&gt;&lt;code&gt;c2cf85a&lt;/code&gt;&lt;/a&gt; feat!: drop support for string configurations in flat config array (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17717&quot;&gt;#17717&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c314fd612587c42cfbe6acbe286629c4178be3f7&quot;&gt;&lt;code&gt;c314fd6&lt;/code&gt;&lt;/a&gt; feat!: Remove &lt;code&gt;SourceCode#getComments()&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17715&quot;&gt;#17715&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae78ff16558a1a2ca07b2b9cd294157d1bdcce2e&quot;&gt;&lt;code&gt;ae78ff1&lt;/code&gt;&lt;/a&gt; feat!: Remove deprecated context methods (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17698&quot;&gt;#17698&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f71c328e2786e2d73f168e43c7f96de172484a49&quot;&gt;&lt;code&gt;f71c328&lt;/code&gt;&lt;/a&gt; feat!: Swap FlatESLint-ESLint, FlatRuleTester-RuleTester in API (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17823&quot;&gt;#17823&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5304da03d94dc8cb19060e2efc9206784c4cec0e&quot;&gt;&lt;code&gt;5304da0&lt;/code&gt;&lt;/a&gt; feat!: remove formatters except html, json(-with-metadata), and stylish (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17531&quot;&gt;#17531&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1e827ffcbd73faa40dbac3b97529452e9c67108&quot;&gt;&lt;code&gt;e1e827f&lt;/code&gt;&lt;/a&gt; feat!: Require Node.js &lt;code&gt;^18.18.0 || ^20.9.0 || &amp;gt;=21.1.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17725&quot;&gt;#17725&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d54a41200483b7dd90531841a48a1f3a91f172fe&quot;&gt;&lt;code&gt;d54a412&lt;/code&gt;&lt;/a&gt; feat: Add --inspect-config CLI flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18270&quot;&gt;#18270&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97ce45bcdaf2320efd59bb7974e0c8e073aab672&quot;&gt;&lt;code&gt;97ce45b&lt;/code&gt;&lt;/a&gt; feat: Add &lt;code&gt;reportUsedIgnorePattern&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17662&quot;&gt;#17662&lt;/a&gt;) (Pearce Ropion)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e9fcea3808af83bda1e610aa2d33fb92135b5de&quot;&gt;&lt;code&gt;3e9fcea&lt;/code&gt;&lt;/a&gt; feat: Show config names in error messages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18256&quot;&gt;#18256&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de408743b5c3fc25ebd7ef5fb11ab49ab4d06c36&quot;&gt;&lt;code&gt;de40874&lt;/code&gt;&lt;/a&gt; feat: Rule Performance Statistics for flat ESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17850&quot;&gt;#17850&lt;/a&gt;) (Mara Kiefer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d85c436353d566d261798c51dadb8ed50def1a7d&quot;&gt;&lt;code&gt;d85c436&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;use-isnan&lt;/a&gt; report NaN in &lt;code&gt;indexOf&lt;/code&gt; and &lt;code&gt;lastIndexOf&lt;/code&gt; with fromIndex (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18225&quot;&gt;#18225&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8fb57256103b908712302ccd508f464eff1c9dc&quot;&gt;&lt;code&gt;b8fb572&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;reportUnusedFallthroughComment&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-fallthrough&quot;&gt;no-fallthrough&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18188&quot;&gt;#18188&lt;/a&gt;) (Kirk Waiblinger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c173dc1f3d36a28cb2543e93675c2fbdb6fa9f1&quot;&gt;&lt;code&gt;1c173dc&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;ignoreClassWithStaticInitBlock&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18170&quot;&gt;#18170&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a451b32b33535a57b4b7e24291f30760f65460ba&quot;&gt;&lt;code&gt;a451b32&lt;/code&gt;&lt;/a&gt; feat: make &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; report more granular errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18082&quot;&gt;#18082&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c49ed63265fc8e0cccea404810a4c5075d396a15&quot;&gt;&lt;code&gt;c49ed63&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;complexity&lt;/a&gt; rule for optional chaining &amp;amp; default values (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18152&quot;&gt;#18152&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/11144a2671b2404b293f656be111221557f3390f&quot;&gt;&lt;code&gt;11144a2&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; option added &lt;code&gt;allowImportNames&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16196&quot;&gt;#16196&lt;/a&gt;) (M Pater)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74124c20287fac1995c3f4e553f0723c066f311d&quot;&gt;&lt;code&gt;74124c2&lt;/code&gt;&lt;/a&gt; feat: add suggestions to &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;&lt;code&gt;use-isnan&lt;/code&gt;&lt;/a&gt; in &lt;code&gt;indexOf&lt;/code&gt; &amp;amp; &lt;code&gt;lastIndexOf&lt;/code&gt; calls (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18063&quot;&gt;#18063&lt;/a&gt;) (StyleShit)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53f0f47badffa1b04ec2836f2ae599f4fc464da2&quot;&gt;&lt;code&gt;53f0f47&lt;/code&gt;&lt;/a&gt; feat: Add loadESLint() API method for v9 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18097&quot;&gt;#18097&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d11d46e890a9f1b5f639b8ee034ffa9bd453e42&quot;&gt;&lt;code&gt;2d11d46&lt;/code&gt;&lt;/a&gt; feat: add suggestions to &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;&lt;code&gt;use-isnan&lt;/code&gt;&lt;/a&gt; in binary expressions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17996&quot;&gt;#17996&lt;/a&gt;) (StyleShit)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26093c76903310d12f21e24e73d97c0d2ac1f359&quot;&gt;&lt;code&gt;26093c7&lt;/code&gt;&lt;/a&gt; feat: fix false negatives in &lt;a href=&quot;https://eslint.org/docs/rules/no-this-before-super&quot;&gt;&lt;code&gt;no-this-before-super&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17762&quot;&gt;#17762&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5471e435d12bf5add9869d81534b147e445a2368&quot;&gt;&lt;code&gt;5471e43&lt;/code&gt;&lt;/a&gt; feat: convert unsafe autofixes to suggestions in &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;&lt;code&gt;no-implicit-coercion&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17985&quot;&gt;#17985&lt;/a&gt;) (Gürgün Dayıoğlu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3051be6366b00e1571e702023a351177d24e443&quot;&gt;&lt;code&gt;e3051be&lt;/code&gt;&lt;/a&gt; feat: emit warning when &lt;code&gt;.eslintignore&lt;/code&gt; file is detected (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17952&quot;&gt;#17952&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a630edd809894dc38752705bb5954d847987f031&quot;&gt;&lt;code&gt;a630edd&lt;/code&gt;&lt;/a&gt; feat: maintain latest ecma version in ESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17958&quot;&gt;#17958&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4e0503a56beea1222be266cc6b186d89410d1f2&quot;&gt;&lt;code&gt;b4e0503&lt;/code&gt;&lt;/a&gt; feat: add &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-assignment&quot;&gt;&lt;code&gt;no-useless-assignment&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17625&quot;&gt;#17625&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/287c4b7d498746b43392ee4fecd6904a9cd4b30b&quot;&gt;&lt;code&gt;287c4b7&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; granular errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17515&quot;&gt;#17515&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8792464ee7956af82dab582ca9ee59da596a608e&quot;&gt;&lt;code&gt;8792464&lt;/code&gt;&lt;/a&gt; feat: Enable eslint.config.mjs and eslint.config.cjs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17909&quot;&gt;#17909&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24ce9276d472b85541c4b01db488c789f33fd234&quot;&gt;&lt;code&gt;24ce927&lt;/code&gt;&lt;/a&gt; feat: warn by default for unused disable directives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17879&quot;&gt;#17879&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/610c1486dc54a095667822113eb08062a1aad2b7&quot;&gt;&lt;code&gt;610c148&lt;/code&gt;&lt;/a&gt; fix: Support &lt;code&gt;using&lt;/code&gt; declarations in &lt;a href=&quot;https://eslint.org/docs/rules/no-lone-blocks&quot;&gt;no-lone-blocks&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18269&quot;&gt;#18269&lt;/a&gt;) (Kirk Waiblinger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e508800658d0a71356ccc8b94a30e06140fc8858&quot;&gt;&lt;code&gt;e508800&lt;/code&gt;&lt;/a&gt; fix: rule tester ignore irrelevant test case properties (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18235&quot;&gt;#18235&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a129acba0bd2d44480b56fd96c3d5444e850ba5b&quot;&gt;&lt;code&gt;a129acb&lt;/code&gt;&lt;/a&gt; fix: flat config name on ignores object (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18258&quot;&gt;#18258&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dadc5bf843a7181b9724a261c7ac0486091207aa&quot;&gt;&lt;code&gt;dadc5bf&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/constructor-super&quot;&gt;&lt;code&gt;constructor-super&lt;/code&gt;&lt;/a&gt; false positives with loops (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18226&quot;&gt;#18226&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae8103de69c12c6e71644a1de9589644e6767d15&quot;&gt;&lt;code&gt;ae8103d&lt;/code&gt;&lt;/a&gt; fix: load plugins in the CLI in flat config mode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18185&quot;&gt;#18185&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e37153f71f173e8667273d6298bef81e0d33f9ba&quot;&gt;&lt;code&gt;e37153f&lt;/code&gt;&lt;/a&gt; fix: improve error message for invalid rule config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18147&quot;&gt;#18147&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af6e17081fa6c343474959712e7a4a20f8b304e2&quot;&gt;&lt;code&gt;af6e170&lt;/code&gt;&lt;/a&gt; fix: stop linting files after an error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18155&quot;&gt;#18155&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0cb4914ef93cd572ba368d390b1cf0b93f578a9d&quot;&gt;&lt;code&gt;0cb4914&lt;/code&gt;&lt;/a&gt; fix: validate options when comment with just severity enables rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18133&quot;&gt;#18133&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4d26fd3d1f59c1c0f2266664887ad18692039f3&quot;&gt;&lt;code&gt;c4d26fd&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;&lt;code&gt;use-isnan&lt;/code&gt;&lt;/a&gt; doesn’t report on &lt;code&gt;SequenceExpression&lt;/code&gt;s (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18059&quot;&gt;#18059&lt;/a&gt;) (StyleShit)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/39076fb5e4c7fa10b305d510f489aff34a5f5d99&quot;&gt;&lt;code&gt;39076fb&lt;/code&gt;&lt;/a&gt; fix: handle absolute file paths in &lt;code&gt;RuleTester&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17989&quot;&gt;#17989&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d11f3dac1b76188d7fda6e772e89b5c3945ac4d&quot;&gt;&lt;code&gt;6d11f3d&lt;/code&gt;&lt;/a&gt; fix: Ensure config keys are printed for config errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17980&quot;&gt;#17980&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/806f70878e787f2c56aaa42a3e7adb61bc015278&quot;&gt;&lt;code&gt;806f708&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; edge cases with granular errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17970&quot;&gt;#17970&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f182114144ae0bb7187de34a1661f31fb70f1357&quot;&gt;&lt;code&gt;f182114&lt;/code&gt;&lt;/a&gt; fix: deep merge behavior in flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17906&quot;&gt;#17906&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b577e8a55750c5e842074f62f1babb1836c4571c&quot;&gt;&lt;code&gt;b577e8a&lt;/code&gt;&lt;/a&gt; fix: allow circular references in config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17752&quot;&gt;#17752&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e151050e64b57f156c32f6d0d1f20dce08b5a610&quot;&gt;&lt;code&gt;e151050&lt;/code&gt;&lt;/a&gt; docs: update get-started to the new &lt;code&gt;@eslint/create-config&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18217&quot;&gt;#18217&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/94178ad5cf4cfa1c8664dd8ac878790e72c90d8c&quot;&gt;&lt;code&gt;94178ad&lt;/code&gt;&lt;/a&gt; docs: mention about &lt;code&gt;name&lt;/code&gt; field in flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18252&quot;&gt;#18252&lt;/a&gt;) (Anthony Fu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1765c24df2f48ab1c1565177b8c6dbef63acf977&quot;&gt;&lt;code&gt;1765c24&lt;/code&gt;&lt;/a&gt; docs: add Troubleshooting page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18181&quot;&gt;#18181&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/96607d0581845fab19f832cd435547f9da960733&quot;&gt;&lt;code&gt;96607d0&lt;/code&gt;&lt;/a&gt; docs: version selectors synchronization (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18260&quot;&gt;#18260&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/651ec9122d0bd8dd08082098bd1e1a24892983f2&quot;&gt;&lt;code&gt;651ec91&lt;/code&gt;&lt;/a&gt; docs: remove &lt;code&gt;/* eslint-env */&lt;/code&gt; comments from rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18249&quot;&gt;#18249&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/950c4f11c6797de56a5b056affd0c74211840957&quot;&gt;&lt;code&gt;950c4f1&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12f574628f2adbe1bfed07aafecf5152b5fc3f4d&quot;&gt;&lt;code&gt;12f5746&lt;/code&gt;&lt;/a&gt; docs: add info about dot files and dir in flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18239&quot;&gt;#18239&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b93f4085c105117a1081b249bd50c0831127fab3&quot;&gt;&lt;code&gt;b93f408&lt;/code&gt;&lt;/a&gt; docs: update shared settings example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18251&quot;&gt;#18251&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26384d3367e11bd4909a3330b72741742897fa1f&quot;&gt;&lt;code&gt;26384d3&lt;/code&gt;&lt;/a&gt; docs: fix &lt;code&gt;ecmaVersion&lt;/code&gt; in one example, add checks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18241&quot;&gt;#18241&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/77470973a0c2cae8ce07a456f2ad95896bc8d1d3&quot;&gt;&lt;code&gt;7747097&lt;/code&gt;&lt;/a&gt; docs: Update PR review process (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18233&quot;&gt;#18233&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b07d427826f81c2bdb683d04879093c687479edf&quot;&gt;&lt;code&gt;b07d427&lt;/code&gt;&lt;/a&gt; docs: fix typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18246&quot;&gt;#18246&lt;/a&gt;) (Kirill Gavrilov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/778082d4fa5e2fc97549c9e5acaecc488ef928f5&quot;&gt;&lt;code&gt;778082d&lt;/code&gt;&lt;/a&gt; docs: add Glossary page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18187&quot;&gt;#18187&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/239a7e27209a6b861d634b3ef245ebbb805793a3&quot;&gt;&lt;code&gt;239a7e2&lt;/code&gt;&lt;/a&gt; docs: Clarify the description of &lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt; options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18198&quot;&gt;#18198&lt;/a&gt;) (gyeongwoo park)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4769c86cc16e0b54294c0a394a1ec7ed88fc334f&quot;&gt;&lt;code&gt;4769c86&lt;/code&gt;&lt;/a&gt; docs: fix incorrect example in &lt;a href=&quot;https://eslint.org/docs/rules/no-lone-blocks&quot;&gt;&lt;code&gt;no-lone-blocks&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18215&quot;&gt;#18215&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5251327711a2d7083e3c629cb8e48d9d1e809add&quot;&gt;&lt;code&gt;5251327&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1dc861897e8b47280e878d609c13c9e41892f427&quot;&gt;&lt;code&gt;1dc8618&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba1c1bbc6ba9d57a83d04f450566337d3c3b0448&quot;&gt;&lt;code&gt;ba1c1bb&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/337cdf9f7ad939df7bc55c23d953e12d847b6ecc&quot;&gt;&lt;code&gt;337cdf9&lt;/code&gt;&lt;/a&gt; docs: Explain limitations of RuleTester fix testing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18175&quot;&gt;#18175&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c7abd8936193a87be274174c47d6775e6220e354&quot;&gt;&lt;code&gt;c7abd89&lt;/code&gt;&lt;/a&gt; docs: Explain Node.js version support (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18176&quot;&gt;#18176&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d961eeb855b6dd9118a78165e358e454eb1d090d&quot;&gt;&lt;code&gt;d961eeb&lt;/code&gt;&lt;/a&gt; docs: show red underlines in examples in rules docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18041&quot;&gt;#18041&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/558274abbd25ef269f4994cf258b2e44afbad548&quot;&gt;&lt;code&gt;558274a&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2908b9b96ab7a25fe8044a1755030b18186a75b0&quot;&gt;&lt;code&gt;2908b9b&lt;/code&gt;&lt;/a&gt; docs: Update release documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18174&quot;&gt;#18174&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f1260e863f53e2a5891163485a67c55d41993aa&quot;&gt;&lt;code&gt;1f1260e&lt;/code&gt;&lt;/a&gt; docs: replace HackerOne link with GitHub advisory (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18165&quot;&gt;#18165&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5ef3cd6953bb40108556e0465653898ffed8420&quot;&gt;&lt;code&gt;e5ef3cd&lt;/code&gt;&lt;/a&gt; docs: add inline cases condition in &lt;a href=&quot;https://eslint.org/docs/rules/no-fallthrough&quot;&gt;&lt;code&gt;no-fallthrough&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18158&quot;&gt;#18158&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/450d0f044023843b1790bd497dfca45dcbdb41e4&quot;&gt;&lt;code&gt;450d0f0&lt;/code&gt;&lt;/a&gt; docs: fix &lt;code&gt;ignore&lt;/code&gt; option docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18154&quot;&gt;#18154&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5fe095cf718b063dc5e58089b0a6cbcd53da7925&quot;&gt;&lt;code&gt;5fe095c&lt;/code&gt;&lt;/a&gt; docs: show v8.57.0 as latest version in dropdown (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18142&quot;&gt;#18142&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7db5bb270f95d1472de0bfed0e33ed5ab294942e&quot;&gt;&lt;code&gt;7db5bb2&lt;/code&gt;&lt;/a&gt; docs: Show prerelease version in dropdown (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18135&quot;&gt;#18135&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/73a5f0641b43e169247b0000f44a366ee6bbc4f2&quot;&gt;&lt;code&gt;73a5f06&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f95cd27679eef228173e27e170429c9710c939b3&quot;&gt;&lt;code&gt;f95cd27&lt;/code&gt;&lt;/a&gt; docs: Disallow multiple rule configuration comments in the same example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18116&quot;&gt;#18116&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d8068ec70fac050e900dc400510a4ad673e17633&quot;&gt;&lt;code&gt;d8068ec&lt;/code&gt;&lt;/a&gt; docs: Update link for schema examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18112&quot;&gt;#18112&lt;/a&gt;) (Svetlana)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f1c7e6fc8ea77fcdae4ad1f8fe1cd104a281d2e9&quot;&gt;&lt;code&gt;f1c7e6f&lt;/code&gt;&lt;/a&gt; docs: Switch to Ethical Ads (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18090&quot;&gt;#18090&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/15c143f96ef164943fd3d39b5ad79d9a4a40de8f&quot;&gt;&lt;code&gt;15c143f&lt;/code&gt;&lt;/a&gt; docs: JS Foundation -&amp;gt; OpenJS Foundation in PR template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18092&quot;&gt;#18092&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ea339e658d29791528ab26aabd86f1683cab6c3&quot;&gt;&lt;code&gt;6ea339e&lt;/code&gt;&lt;/a&gt; docs: add stricter rule test validations to v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18085&quot;&gt;#18085&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c816f193eecace5efc6166efa2852a829175ef8&quot;&gt;&lt;code&gt;3c816f1&lt;/code&gt;&lt;/a&gt; docs: use relative link from CLI to core concepts (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18083&quot;&gt;#18083&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9458735381269d12b24f76e1b2b6fda1bc5a509b&quot;&gt;&lt;code&gt;9458735&lt;/code&gt;&lt;/a&gt; docs: fix malformed &lt;code&gt;eslint&lt;/code&gt; config comments in rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18078&quot;&gt;#18078&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/07a1ada7166b76c7af6186f4c5e5de8b8532edba&quot;&gt;&lt;code&gt;07a1ada&lt;/code&gt;&lt;/a&gt; docs: link from &lt;code&gt;--fix&lt;/code&gt; CLI doc to the relevant core concept (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18080&quot;&gt;#18080&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b844324e4e8f511c9985a96c7aca063269df9570&quot;&gt;&lt;code&gt;b844324&lt;/code&gt;&lt;/a&gt; docs: Update team responsibilities (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18048&quot;&gt;#18048&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aadfb609f1b847e492fc3b28ced62f830fe7f294&quot;&gt;&lt;code&gt;aadfb60&lt;/code&gt;&lt;/a&gt; docs: document languageOptions and other v9 changes for context (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18074&quot;&gt;#18074&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/857e242584227181ecb8af79fc6bc236b9975228&quot;&gt;&lt;code&gt;857e242&lt;/code&gt;&lt;/a&gt; docs: tweak explanation for meta.docs rule properties (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18057&quot;&gt;#18057&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10485e8b961d045514bc1e34227cf09867a6c4b7&quot;&gt;&lt;code&gt;10485e8&lt;/code&gt;&lt;/a&gt; docs: recommend messageId over message for reporting rule violations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18050&quot;&gt;#18050&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/98b5ab406bac6279eadd84e8a5fd5a01fc586ff1&quot;&gt;&lt;code&gt;98b5ab4&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/505fbf4b35c14332bffb0c838cce4843a00fad68&quot;&gt;&lt;code&gt;505fbf4&lt;/code&gt;&lt;/a&gt; docs: update &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18015&quot;&gt;#18015&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c25b4aff1fe35e5bd9d4fcdbb45b739b6d253828&quot;&gt;&lt;code&gt;c25b4af&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/33d1ab0b6ea5fcebca7284026d2396df41b06566&quot;&gt;&lt;code&gt;33d1ab0&lt;/code&gt;&lt;/a&gt; docs: add more examples to flat config ignores docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18020&quot;&gt;#18020&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6eebca90750ef5c7c99d4fe3658553cf737dab8&quot;&gt;&lt;code&gt;e6eebca&lt;/code&gt;&lt;/a&gt; docs: Update &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;sort-keys&lt;/a&gt; options properties count (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18025&quot;&gt;#18025&lt;/a&gt;) (LB (Ben Johnston))&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fedfd28a46d86b2fbcf06a2328befafd6535a88&quot;&gt;&lt;code&gt;1fedfd2&lt;/code&gt;&lt;/a&gt; docs: Improve flat config ignores docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17997&quot;&gt;#17997&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38b9b06695f88c70441dd15ae5d97ffd8088be23&quot;&gt;&lt;code&gt;38b9b06&lt;/code&gt;&lt;/a&gt; docs: update &lt;a href=&quot;https://eslint.org/docs/rules/valid-typeof&quot;&gt;valid-typeof&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18001&quot;&gt;#18001&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4abfea4c1703a50f1ce639e3207ad342a56f79d&quot;&gt;&lt;code&gt;b4abfea&lt;/code&gt;&lt;/a&gt; docs: Update note about ECMAScript support (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17991&quot;&gt;#17991&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6788873328a7f974d5e45c0be06ca0c7dd409acd&quot;&gt;&lt;code&gt;6788873&lt;/code&gt;&lt;/a&gt; docs: Update release blog post template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17994&quot;&gt;#17994&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f3744278433006042b8d5f4e9e1e488b2bbb011&quot;&gt;&lt;code&gt;1f37442&lt;/code&gt;&lt;/a&gt; docs: Add sections on non-npm plugin configuration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17984&quot;&gt;#17984&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/96307da837c407c9a1275124b65ca29c07ffd5e4&quot;&gt;&lt;code&gt;96307da&lt;/code&gt;&lt;/a&gt; docs: migration guide entry for &lt;a href=&quot;https://eslint.org/docs/rules/no-inner-declarations&quot;&gt;&lt;code&gt;no-inner-declarations&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17977&quot;&gt;#17977&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/40be60e0186cdde76219df4e8e628125df2912d8&quot;&gt;&lt;code&gt;40be60e&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d31c180312260d1a286cc8162907b6a33368edc9&quot;&gt;&lt;code&gt;d31c180&lt;/code&gt;&lt;/a&gt; docs: fix number of code-path events on custom rules page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17969&quot;&gt;#17969&lt;/a&gt;) (Richard Hunter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1529ab288ec815b2690864e04dd6d0a1f0b537c6&quot;&gt;&lt;code&gt;1529ab2&lt;/code&gt;&lt;/a&gt; docs: reorder entries in v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17967&quot;&gt;#17967&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95075251fb3ce35aaf7eadbd1d0a737106c13ec6&quot;&gt;&lt;code&gt;9507525&lt;/code&gt;&lt;/a&gt; docs: Explain how to combine configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17947&quot;&gt;#17947&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c785769fd177176966de7f6c1153480f7405000&quot;&gt;&lt;code&gt;7c78576&lt;/code&gt;&lt;/a&gt; docs: Add more removed &lt;code&gt;context&lt;/code&gt; methods to migrate to v9 guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17951&quot;&gt;#17951&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a877d68d0151679f8bf1cabc39746778754b3dd&quot;&gt;&lt;code&gt;3a877d6&lt;/code&gt;&lt;/a&gt; docs: Update removed CLI flags migration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17939&quot;&gt;#17939&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4a9cd1ea1cd0c115b98d07d1b6018ca918a9c73f&quot;&gt;&lt;code&gt;4a9cd1e&lt;/code&gt;&lt;/a&gt; docs: Update Linter API for v9 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17937&quot;&gt;#17937&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2a8eea8e5847f4103d90d667a2b08edf9795545f&quot;&gt;&lt;code&gt;2a8eea8&lt;/code&gt;&lt;/a&gt; docs: update docs for v9.0.0-alpha.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17929&quot;&gt;#17929&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f0ba51bcef3e6fbf972ceb20403238f0e1f0ea9&quot;&gt;&lt;code&gt;7f0ba51&lt;/code&gt;&lt;/a&gt; docs: show &lt;code&gt;NEXT&lt;/code&gt; in version selectors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17911&quot;&gt;#17911&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a7911e09adf2aca4d93c81f4be1cd80db7dd735&quot;&gt;&lt;code&gt;0a7911e&lt;/code&gt;&lt;/a&gt; docs: add flat config default to v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17927&quot;&gt;#17927&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/94f80652aca302e2715ea51c10c3a1010786b751&quot;&gt;&lt;code&gt;94f8065&lt;/code&gt;&lt;/a&gt; docs: Add CLI updates to migrate to v9 guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17924&quot;&gt;#17924&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16187f23c6e5aaed3b50ff551a66f758893d5422&quot;&gt;&lt;code&gt;16187f2&lt;/code&gt;&lt;/a&gt; docs: Add exported and string config notes to migrate to v9 guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17926&quot;&gt;#17926&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ae50cc788c3cdd209e642573e3c831dd86fa0cd&quot;&gt;&lt;code&gt;3ae50cc&lt;/code&gt;&lt;/a&gt; docs: Add RuleTester changes to migrate to v9 guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17923&quot;&gt;#17923&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0831b58fe6fb5778c92aeb4cefa9ecedbbfbf48b&quot;&gt;&lt;code&gt;0831b58&lt;/code&gt;&lt;/a&gt; docs: add rule changes to v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17925&quot;&gt;#17925&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/037abfc21f264fca3a910c4a5cd23d1bf6826c3d&quot;&gt;&lt;code&gt;037abfc&lt;/code&gt;&lt;/a&gt; docs: update API docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17919&quot;&gt;#17919&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afc3c038ed3132a99659604624cc24e702eec45a&quot;&gt;&lt;code&gt;afc3c03&lt;/code&gt;&lt;/a&gt; docs: add function-style and &lt;code&gt;meta.schema&lt;/code&gt; changes to v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17912&quot;&gt;#17912&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1da0723695d080008b22f30c8b5c86fe386c6242&quot;&gt;&lt;code&gt;1da0723&lt;/code&gt;&lt;/a&gt; docs: update &lt;code&gt;eslint:recommended&lt;/code&gt; section in Migrate to v9.x (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17908&quot;&gt;#17908&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f55881f492d10e9c759e459ba6bade1be3dad84b&quot;&gt;&lt;code&gt;f55881f&lt;/code&gt;&lt;/a&gt; docs: remove &lt;a href=&quot;http://configuration-files-new.md/&quot;&gt;configuration-files-new.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17907&quot;&gt;#17907&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/63ae191070569a9118b5972c90a98633b0a336e1&quot;&gt;&lt;code&gt;63ae191&lt;/code&gt;&lt;/a&gt; docs: Migrate to v9.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17905&quot;&gt;#17905&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e7084963c73f3cbaae5d569b4a2bee1509dd8cef&quot;&gt;&lt;code&gt;e708496&lt;/code&gt;&lt;/a&gt; docs: Switch to flat config by default (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17840&quot;&gt;#17840&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fdf0424c5c08c058479a6cd7676be6985e0f400f&quot;&gt;&lt;code&gt;fdf0424&lt;/code&gt;&lt;/a&gt; docs: Update Create a Plugin for flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17826&quot;&gt;#17826&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6a91bdf401e3b765f2b712e447154e4a2419fbc&quot;&gt;&lt;code&gt;e6a91bd&lt;/code&gt;&lt;/a&gt; docs: Switch shareable config docs to use flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17827&quot;&gt;#17827&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3831fb78daa3da296b71823f61f8e3a4556ff7d3&quot;&gt;&lt;code&gt;3831fb7&lt;/code&gt;&lt;/a&gt; docs: updated examples of &lt;a href=&quot;https://eslint.org/docs/rules/max-lines&quot;&gt;&lt;code&gt;max-lines&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17898&quot;&gt;#17898&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd1ac2041f48f2b6d743ebf671d0279a70de6eea&quot;&gt;&lt;code&gt;cd1ac20&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26010c209d2657cd401bf2550ba4f276cb318f7d&quot;&gt;&lt;code&gt;26010c2&lt;/code&gt;&lt;/a&gt; Build: changelog update for 9.0.0-rc.0 (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b91f9dc072f17f5ea79803deb86cf002d031b4cf&quot;&gt;&lt;code&gt;b91f9dc&lt;/code&gt;&lt;/a&gt; build: fix TypeError in prism-eslint-hooks.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18209&quot;&gt;#18209&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d7ec0d1fbdbafa139d090ffd8b42d33bd4aa46f8&quot;&gt;&lt;code&gt;d7ec0d1&lt;/code&gt;&lt;/a&gt; Build: changelog update for 9.0.0-beta.2 (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd9c0a9f0e50da617fe1f2e60ba3df0276a7f06b&quot;&gt;&lt;code&gt;fd9c0a9&lt;/code&gt;&lt;/a&gt; Build: changelog update for 9.0.0-beta.1 (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9f2f3343e7c197e5e962c68ef202d6a1646866e&quot;&gt;&lt;code&gt;c9f2f33&lt;/code&gt;&lt;/a&gt; build: changelog update for 8.57.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18144&quot;&gt;#18144&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1bbc495aecbd3e4a4aaf54d7c489191809c1b65b&quot;&gt;&lt;code&gt;1bbc495&lt;/code&gt;&lt;/a&gt; Build: changelog update for 9.0.0-beta.0 (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/96f8877de7dd3d92ac5afb77c92d821002d24929&quot;&gt;&lt;code&gt;96f8877&lt;/code&gt;&lt;/a&gt; Build: changelog update for 9.0.0-alpha.2 (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52d5e7a41d37a1a6d9aa1dffba3b688573800536&quot;&gt;&lt;code&gt;52d5e7a&lt;/code&gt;&lt;/a&gt; Build: changelog update for 9.0.0-alpha.1 (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2bf27def29ef1ca7f5bfe20c1306bf78087ea29&quot;&gt;&lt;code&gt;c2bf27d&lt;/code&gt;&lt;/a&gt; build: update docs files when publishing prereleases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17940&quot;&gt;#17940&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e91d85db76c7bd8a5998f7ff52d2cc844d0e953e&quot;&gt;&lt;code&gt;e91d85d&lt;/code&gt;&lt;/a&gt; Build: changelog update for 9.0.0-alpha.0 (Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19f9a8926bd7888ab4a813ae323ad3c332fd5d5c&quot;&gt;&lt;code&gt;19f9a89&lt;/code&gt;&lt;/a&gt; chore: Update dependencies for v9.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18275&quot;&gt;#18275&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c957f295dcd97286016cfb3c121dbae72f26a91&quot;&gt;&lt;code&gt;7c957f2&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d73a33caddc34ab1eb62039f0f661a338836147c&quot;&gt;&lt;code&gt;d73a33c&lt;/code&gt;&lt;/a&gt; chore: ignore &lt;code&gt;/docs/v8.x&lt;/code&gt; in link checker (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18274&quot;&gt;#18274&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/44a81c6151c58a3f4c1f6bb2927b0996f81c2daa&quot;&gt;&lt;code&gt;44a81c6&lt;/code&gt;&lt;/a&gt; chore: upgrade knip (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18272&quot;&gt;#18272&lt;/a&gt;) (Lars Kappert)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e80b60c342f59db998afefd856b31159a527886a&quot;&gt;&lt;code&gt;e80b60c&lt;/code&gt;&lt;/a&gt; chore: remove code for testing version selectors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18266&quot;&gt;#18266&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a98babcda227649b2299d10e3f887241099406f7&quot;&gt;&lt;code&gt;a98babc&lt;/code&gt;&lt;/a&gt; chore: add npm script to run WebdriverIO test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18238&quot;&gt;#18238&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b7bd3be066ac1f72fa35c4d31a1b178c7e2b683&quot;&gt;&lt;code&gt;9b7bd3b&lt;/code&gt;&lt;/a&gt; chore: update dependency markdownlint to ^0.34.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18237&quot;&gt;#18237&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/297416d2b41f5880554d052328aa36cd79ceb051&quot;&gt;&lt;code&gt;297416d&lt;/code&gt;&lt;/a&gt; chore: package.json update for eslint-9.0.0-rc.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18223&quot;&gt;#18223&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d363c51b177e085b011c7fde1c5a5a09b3db9cdb&quot;&gt;&lt;code&gt;d363c51&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b841bb04ac642c5ee84d1e44be3e53317579526&quot;&gt;&lt;code&gt;1b841bb&lt;/code&gt;&lt;/a&gt; chore: fix some comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18213&quot;&gt;#18213&lt;/a&gt;) (avoidaway)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29c359599c2ddd168084a2c8cbca626c51d0dc13&quot;&gt;&lt;code&gt;29c3595&lt;/code&gt;&lt;/a&gt; chore: remove repetitive words (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18193&quot;&gt;#18193&lt;/a&gt;) (cuithon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acc2e06edd55eaab58530d891c0a572c1f0ec453&quot;&gt;&lt;code&gt;acc2e06&lt;/code&gt;&lt;/a&gt; chore: Introduce Knip (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18005&quot;&gt;#18005&lt;/a&gt;) (Lars Kappert)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/75092764db117252067558bd3fbbf0c66ac081b7&quot;&gt;&lt;code&gt;7509276&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.0.0-beta.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18180&quot;&gt;#18180&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/96087b33dc10311bba83e22cc968919c358a0188&quot;&gt;&lt;code&gt;96087b3&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/925afa2b0c882f77f6b4411bdca3cb8ad6934b56&quot;&gt;&lt;code&gt;925afa2&lt;/code&gt;&lt;/a&gt; chore: Remove some uses of &lt;code&gt;lodash.merge&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18179&quot;&gt;#18179&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/972ef155a94ad2cc85db7d209ad869869222c14c&quot;&gt;&lt;code&gt;972ef15&lt;/code&gt;&lt;/a&gt; chore: remove invalid type in @eslint/js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18164&quot;&gt;#18164&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/32ffdd181aa673ccc596f714d10a2f879ec622a7&quot;&gt;&lt;code&gt;32ffdd1&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.0.0-beta.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18146&quot;&gt;#18146&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e41425b5c3b4c885f2679a3663bd081911a8b570&quot;&gt;&lt;code&gt;e41425b&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb3b9c68fe714bb8aa305be5f019a7a42f4374ee&quot;&gt;&lt;code&gt;bb3b9c6&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@3.0.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18145&quot;&gt;#18145&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e462524cc318ffacecd266e6fe1038945a0b02e9&quot;&gt;&lt;code&gt;e462524&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-release@3.2.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18138&quot;&gt;#18138&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e13a6beb587e624cc95ae16eefe503ad024b11b&quot;&gt;&lt;code&gt;8e13a6b&lt;/code&gt;&lt;/a&gt; chore: fix spelling mistake in &lt;a href=&quot;http://readme.md/&quot;&gt;README.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18128&quot;&gt;#18128&lt;/a&gt;) (Will Eastcott)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66f52e276c31487424bcf54e490c4ac7ef70f77f&quot;&gt;&lt;code&gt;66f52e2&lt;/code&gt;&lt;/a&gt; chore: remove unused tools rule-types.json, update-rule-types.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18125&quot;&gt;#18125&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf0c7effdba51c48b929d06ce1965408a912dc77&quot;&gt;&lt;code&gt;bf0c7ef&lt;/code&gt;&lt;/a&gt; ci: fix sync-labels value of pr-labeler (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18124&quot;&gt;#18124&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cace6d0a3afa5c84b18abee4ef8c598125143461&quot;&gt;&lt;code&gt;cace6d0&lt;/code&gt;&lt;/a&gt; ci: add PR labeler action (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18109&quot;&gt;#18109&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a65d3e4a6ee16e3f607d69b998a08c3fed505ca&quot;&gt;&lt;code&gt;1a65d3e&lt;/code&gt;&lt;/a&gt; chore: export &lt;code&gt;base&lt;/code&gt; config from &lt;code&gt;eslint-config-eslint&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18119&quot;&gt;#18119&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9aa4df3f4d85960eee72923f3b9bfc88e62f04fb&quot;&gt;&lt;code&gt;9aa4df3&lt;/code&gt;&lt;/a&gt; refactor: remove &lt;code&gt;globals&lt;/code&gt; dependency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18115&quot;&gt;#18115&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e40d1d74a5b9788cbec195f4e602b50249f26659&quot;&gt;&lt;code&gt;e40d1d7&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.0.0-beta.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18108&quot;&gt;#18108&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9870f93e714edefb410fccae1e9924a3c1972a2e&quot;&gt;&lt;code&gt;9870f93&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c62e797a433e5fc298b976872a89c594f88bb19&quot;&gt;&lt;code&gt;2c62e79&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@3.0.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18107&quot;&gt;#18107&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81f0294e651928b49eb49495b90b54376073a790&quot;&gt;&lt;code&gt;81f0294&lt;/code&gt;&lt;/a&gt; chore: upgrade espree@10.0.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18106&quot;&gt;#18106&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e2b2922aa65bda54b0966d1bf71acda82b3047c&quot;&gt;&lt;code&gt;5e2b292&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-visitor-keys@4.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18105&quot;&gt;#18105&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce838adc3b673e52a151f36da0eedf5876977514&quot;&gt;&lt;code&gt;ce838ad&lt;/code&gt;&lt;/a&gt; chore: replace dependency npm-run-all with npm-run-all2 ^5.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18045&quot;&gt;#18045&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54df731174d2528170560d1f765e1336eca0a8bd&quot;&gt;&lt;code&gt;54df731&lt;/code&gt;&lt;/a&gt; chore: update dependency markdownlint-cli to ^0.39.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18084&quot;&gt;#18084&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f06a606845f40aaf0fea1fd83d5930747c5acec&quot;&gt;&lt;code&gt;8f06a60&lt;/code&gt;&lt;/a&gt; chore: update dependency shelljs to ^0.8.5 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18079&quot;&gt;#18079&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/93ffe30da5e2127e336c1c22e69e09ec0558a8e6&quot;&gt;&lt;code&gt;93ffe30&lt;/code&gt;&lt;/a&gt; chore: update dependency file-entry-cache to v8 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17903&quot;&gt;#17903&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ffdcbb8c51956054d3f81c5ce446c15dcd51a6f&quot;&gt;&lt;code&gt;6ffdcbb&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.0.0-alpha.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18038&quot;&gt;#18038&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c1271528e88d0c3c6a92eeee902001f1703d5c9&quot;&gt;&lt;code&gt;2c12715&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc74c4da99368b97494b924dbea1cb6e87adec53&quot;&gt;&lt;code&gt;cc74c4d&lt;/code&gt;&lt;/a&gt; chore: upgrade espree@10.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18037&quot;&gt;#18037&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dfb68b63ce6e8df6ffe81bd843e650c5b017dce9&quot;&gt;&lt;code&gt;dfb68b6&lt;/code&gt;&lt;/a&gt; chore: use Node.js 20 for docs sites (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18026&quot;&gt;#18026&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c1b8dda169920c4e3b99f6548f9c872d65ee426&quot;&gt;&lt;code&gt;8c1b8dd&lt;/code&gt;&lt;/a&gt; test: add more tests for ignoring files and directories (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18018&quot;&gt;#18018&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60b966b6861da11617ddc15487bd7a51c584c596&quot;&gt;&lt;code&gt;60b966b&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/js to v9.0.0-alpha.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18014&quot;&gt;#18014&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c893bc0bdf1bca256fbab6190358e5f922683249&quot;&gt;&lt;code&gt;c893bc0&lt;/code&gt;&lt;/a&gt; chore: update &lt;code&gt;markdownlint&lt;/code&gt; to &lt;code&gt;v0.33.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17995&quot;&gt;#17995&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5e50ee65cf22871770b1d4d438b9056c577f646&quot;&gt;&lt;code&gt;c5e50ee&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1bf2520c4166aa55596417bf44c567555bc65fba&quot;&gt;&lt;code&gt;1bf2520&lt;/code&gt;&lt;/a&gt; chore: Split Docs CI from core CI (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17897&quot;&gt;#17897&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/320787e661beb979cf063d0f8333654f94ef9efd&quot;&gt;&lt;code&gt;320787e&lt;/code&gt;&lt;/a&gt; chore: delete relative-module-resolver.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17981&quot;&gt;#17981&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4926f33b96faf07a64aceec5f1f4882f4faaf4b5&quot;&gt;&lt;code&gt;4926f33&lt;/code&gt;&lt;/a&gt; refactor: use &lt;code&gt;Object.hasOwn()&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17948&quot;&gt;#17948&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df200e147705eb62f94b99c170554327259c65d4&quot;&gt;&lt;code&gt;df200e1&lt;/code&gt;&lt;/a&gt; refactor: use &lt;code&gt;Array.prototype.at()&lt;/code&gt; to get last elements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17949&quot;&gt;#17949&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/750b8dff6df02a500e12cb78390fd14814c82e5b&quot;&gt;&lt;code&gt;750b8df&lt;/code&gt;&lt;/a&gt; chore: update dependency glob to v10 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17917&quot;&gt;#17917&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74794f53a6bc88b67653c737f858cfdf35b1c73d&quot;&gt;&lt;code&gt;74794f5&lt;/code&gt;&lt;/a&gt; chore: removed unused eslintrc modules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17938&quot;&gt;#17938&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10ed29c0c4505dbac3bb05b0e3d61f329b99f747&quot;&gt;&lt;code&gt;10ed29c&lt;/code&gt;&lt;/a&gt; chore: remove unused dependency rimraf (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17934&quot;&gt;#17934&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/903ee60ea910aee344df7edb66874f80e4b6ed31&quot;&gt;&lt;code&gt;903ee60&lt;/code&gt;&lt;/a&gt; ci: use &lt;code&gt;--force&lt;/code&gt; flag when installing eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17921&quot;&gt;#17921&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17fedc17e9e6e39ad986d917fb4e9e4835c50482&quot;&gt;&lt;code&gt;17fedc1&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.0.0-alpha.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17928&quot;&gt;#17928&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb89ef373fffbed991f4e099cb255a7c116889f9&quot;&gt;&lt;code&gt;cb89ef3&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6f4a45680039f720a2fccd5f445deaf45babb3d&quot;&gt;&lt;code&gt;f6f4a45&lt;/code&gt;&lt;/a&gt; chore: drop structuredClone polyfill for v9 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17915&quot;&gt;#17915&lt;/a&gt;) (Kevin Gibbons)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/412dcbb672b5a5859f96753afa7cb87291135a1b&quot;&gt;&lt;code&gt;412dcbb&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-plugin-n@16.6.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17916&quot;&gt;#17916&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02a8baf9f2ef7b309c7d45564a79ed5d2153057f&quot;&gt;&lt;code&gt;02a8baf&lt;/code&gt;&lt;/a&gt; chore: Rename files with underscores (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17910&quot;&gt;#17910&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c0f5d913b0f07de332dfcecf6052f1e64bf3d2fb&quot;&gt;&lt;code&gt;c0f5d91&lt;/code&gt;&lt;/a&gt; chore: remove creating an unused instance of Linter in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17902&quot;&gt;#17902&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3826cdf89294d079be037a9ab30b7506077b26ac&quot;&gt;&lt;code&gt;3826cdf&lt;/code&gt;&lt;/a&gt; chore: use jsdoc/no-multi-asterisks with allowWhitespace: true (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17900&quot;&gt;#17900&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9a17b3f1cb6b6c609bda86a618ac5ff631285d2&quot;&gt;&lt;code&gt;a9a17b3&lt;/code&gt;&lt;/a&gt; chore: fix getting scope in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17899&quot;&gt;#17899&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/595a1f689edb5250d8398af13c3e4bd19d284d92&quot;&gt;&lt;code&gt;595a1f6&lt;/code&gt;&lt;/a&gt; test: ensure that CLI tests run with FlatESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17884&quot;&gt;#17884&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c7eca43202be98f6ff253b46c9a38602eeb92ea0&quot;&gt;&lt;code&gt;c7eca43&lt;/code&gt;&lt;/a&gt; chore: update dependency markdownlint-cli to ^0.38.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17865&quot;&gt;#17865&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc0c9f707aa9da7965b98151868b3c249c7f8f30&quot;&gt;&lt;code&gt;cc0c9f7&lt;/code&gt;&lt;/a&gt; ci: bump github/codeql-action from 2 to 3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17873&quot;&gt;#17873&lt;/a&gt;) (dependabot[bot])&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Introducing ESLint Config Inspector</title>
    <link href="https://eslint.org/blog/2024/04/eslint-config-inspector/"/>
    <updated>2024-04-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/04/eslint-config-inspector/</id>
    <content type="html">&lt;p&gt;As of ESLint v9,0.0, the &lt;a href=&quot;https://eslint.org/blog/2023/10/flat-config-rollout-plans/&quot;&gt;new configuration system&lt;/a&gt; has reached general availability, bringing with it many benefits. Configuration files are now easier to manage and more transparent to compose. However, it can still be non-trivial to understand which rules are enabled and disabled for specific files, especially when your configuration is complex or composed from multiple sources. That’s why we are excited to introduce the &lt;a href=&quot;https://github.com/eslint/config-inspector&quot;&gt;ESLint Config Inspector&lt;/a&gt;, a visual and interactive tool to help you better understand and inspect your config file.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2024/config-inspector-intro.png&quot; alt=&quot;Screenshot of config inspector&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;give-it-a-try!&quot; tabindex=&quot;-1&quot;&gt;Give it a Try!&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/eslint/config-inspector&quot;&gt;ESLint Config Inspector&lt;/a&gt; is a CLI command that fires up a local web server to visualize your ESLint configuration file from your local filesystem. Give it a try:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;eslint --inspect-config&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or you can run the config inspector without ESLint installed by running the following command in the root directory that contains &lt;code&gt;eslint.config.js&lt;/code&gt; file:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;npx @eslint/config-inspector&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Visit &lt;a href=&quot;http://localhost:7777/&quot;&gt;http://localhost:7777&lt;/a&gt; in your browser, and you will see a visual representation of your ESLint configuration file. You can then navigate through the rules, plugins, and language configurations that are enabled or disabled. Changes made to your local configuration file will also be reflected in automatically in the inspector.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;p&gt;Here are some of the key features that the ESLint Config Inspector provides:&lt;/p&gt;
&lt;h3 id=&quot;config-items-overview&quot; tabindex=&quot;-1&quot;&gt;Config Items Overview&lt;/h3&gt;
&lt;p&gt;In the “Configs” tab, you will see a list of all configuration objects from your configuration file. This is especially useful when you are including external configurations or have dynamically generated configurations. This feature gives you the transparency to see how those configurations are resolved and augmented in your project.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2024/config-inspector-configs.png&quot; alt=&quot;Screenshot of Configs Overview&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;filepath-matching&quot; tabindex=&quot;-1&quot;&gt;Filepath Matching&lt;/h3&gt;
&lt;p&gt;In the “Configs” tab, you can enter a file path to see which rules are enabled or disabled for that specific file:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2024/config-inspector-filepath-filter.png&quot; alt=&quot;Screenshot of Filepath Matching&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can also toggle the view to see the final merged rules for that file:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2024/config-inspector-filepath-merged.png&quot; alt=&quot;Screenshot of Filepath Matching Merged&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;available-rules&quot; tabindex=&quot;-1&quot;&gt;Available Rules&lt;/h3&gt;
&lt;p&gt;Go to the “Rules” tab to see all the available rules from the plugins you have installed. Each rule displays if it is enabled or disabled in your configuration file. You can also filter rules to find the usage of deprecated rules or recommended rules that are not yet enabled.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2024/config-inspector-deprecated.png&quot; alt=&quot;Screenshot of Filepath Matching&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;We hope that the ESLint Config Inspector will make understanding and maintaining your ESLint configurations easier and more enjoyable. We are excited to hear your feedback and suggestions on how we can improve the tool further. Please feel free to &lt;a href=&quot;https://github.com/eslint/config-inspector/issues&quot;&gt;open an issue&lt;/a&gt; to share your thoughts.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.0.0-rc.0 released</title>
    <link href="https://eslint.org/blog/2024/03/eslint-v9.0.0-rc.0-released/"/>
    <updated>2024-03-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/03/eslint-v9.0.0-rc.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@9.0.0-rc.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/next/use/migrate-to-9.0.0&quot;&gt;migration guide&lt;/a&gt; describing the breaking changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h3 id=&quot;precalculated-code-paths&quot; tabindex=&quot;-1&quot;&gt;Precalculated Code Paths&lt;/h3&gt;
&lt;p&gt;ESLint v9.0.0 now precalculates code path information before the traversal used by rules. As a result, the code path information is now complete regardless of where it is accessed inside of a rule.&lt;/p&gt;
&lt;h3 id=&quot;disallow-unused-%2F%2F-fallthrough-comments&quot; tabindex=&quot;-1&quot;&gt;Disallow Unused &lt;code&gt;// fallthrough&lt;/code&gt; Comments&lt;/h3&gt;
&lt;p&gt;In ESLint v9.0.0-rc.0, the rule &lt;code&gt;no-fallthrough&lt;/code&gt; has a new option &lt;code&gt;reportUnusedFallthroughComment&lt;/code&gt;.
When this option is set to &lt;code&gt;true&lt;/code&gt;, the rule will prohibit a fallthrough comment if a case can never fallthrough.
This is intended to help avoiding misleading comments that can occur as a result of refactoring.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/09bd7fe09ad255a263286e90accafbe2bf04ccfc&quot;&gt;&lt;code&gt;09bd7fe&lt;/code&gt;&lt;/a&gt; feat!: move AST traversal into SourceCode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18167&quot;&gt;#18167&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8fb57256103b908712302ccd508f464eff1c9dc&quot;&gt;&lt;code&gt;b8fb572&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;reportUnusedFallthroughComment&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-fallthrough&quot;&gt;no-fallthrough&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18188&quot;&gt;#18188&lt;/a&gt;) (Kirk Waiblinger)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae8103de69c12c6e71644a1de9589644e6767d15&quot;&gt;&lt;code&gt;ae8103d&lt;/code&gt;&lt;/a&gt; fix: load plugins in the CLI in flat config mode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18185&quot;&gt;#18185&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/239a7e27209a6b861d634b3ef245ebbb805793a3&quot;&gt;&lt;code&gt;239a7e2&lt;/code&gt;&lt;/a&gt; docs: Clarify the description of &lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt; options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18198&quot;&gt;#18198&lt;/a&gt;) (gyeongwoo park)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4769c86cc16e0b54294c0a394a1ec7ed88fc334f&quot;&gt;&lt;code&gt;4769c86&lt;/code&gt;&lt;/a&gt; docs: fix incorrect example in &lt;a href=&quot;https://eslint.org/docs/rules/no-lone-blocks&quot;&gt;&lt;code&gt;no-lone-blocks&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18215&quot;&gt;#18215&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5251327711a2d7083e3c629cb8e48d9d1e809add&quot;&gt;&lt;code&gt;5251327&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1dc861897e8b47280e878d609c13c9e41892f427&quot;&gt;&lt;code&gt;1dc8618&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b91f9dc072f17f5ea79803deb86cf002d031b4cf&quot;&gt;&lt;code&gt;b91f9dc&lt;/code&gt;&lt;/a&gt; build: fix TypeError in prism-eslint-hooks.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18209&quot;&gt;#18209&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/297416d2b41f5880554d052328aa36cd79ceb051&quot;&gt;&lt;code&gt;297416d&lt;/code&gt;&lt;/a&gt; chore: package.json update for eslint-9.0.0-rc.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18223&quot;&gt;#18223&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d363c51b177e085b011c7fde1c5a5a09b3db9cdb&quot;&gt;&lt;code&gt;d363c51&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b841bb04ac642c5ee84d1e44be3e53317579526&quot;&gt;&lt;code&gt;1b841bb&lt;/code&gt;&lt;/a&gt; chore: fix some comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18213&quot;&gt;#18213&lt;/a&gt;) (avoidaway)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29c359599c2ddd168084a2c8cbca626c51d0dc13&quot;&gt;&lt;code&gt;29c3595&lt;/code&gt;&lt;/a&gt; chore: remove repetitive words (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18193&quot;&gt;#18193&lt;/a&gt;) (cuithon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acc2e06edd55eaab58530d891c0a572c1f0ec453&quot;&gt;&lt;code&gt;acc2e06&lt;/code&gt;&lt;/a&gt; chore: Introduce Knip (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18005&quot;&gt;#18005&lt;/a&gt;) (Lars Kappert)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.0.0-beta.2 released</title>
    <link href="https://eslint.org/blog/2024/03/eslint-v9.0.0-beta.2-released/"/>
    <updated>2024-03-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/03/eslint-v9.0.0-beta.2-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@9.0.0-beta.2 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/next/use/migrate-to-9.0.0&quot;&gt;migration guide&lt;/a&gt; describing the breaking changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h3 id=&quot;multiple-%2F*-eslint-*%2F-comments-for-the-same-rule-are-now-disallowed&quot; tabindex=&quot;-1&quot;&gt;Multiple &lt;code&gt;/* eslint */&lt;/code&gt; comments for the same rule are now disallowed&lt;/h3&gt;
&lt;p&gt;In ESLint v8.x, if the file being linted contained multiple &lt;code&gt;/* eslint */&lt;/code&gt; configuration comments for the same rule, the last one would be applied, while the others would be silently ignored.&lt;/p&gt;
&lt;p&gt;In ESLint v9.0.0, the first one is applied, while the others are reported as lint errors.&lt;/p&gt;
&lt;h3 id=&quot;new-features&quot; tabindex=&quot;-1&quot;&gt;New Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;no-restricted-imports&lt;/code&gt; rule has new options &lt;code&gt;allowImportNames&lt;/code&gt; and &lt;code&gt;allowImportNamePattern&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;no-unused-vars&lt;/code&gt; rule has a new option &lt;code&gt;ignoreClassWithStaticInitBlock&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;complexity&lt;/code&gt; rule now also takes into account optional chaining and default values in destructuring patterns and parameters.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79a95eb7da7fe657b6448c225d4f8ac31117456a&quot;&gt;&lt;code&gt;79a95eb&lt;/code&gt;&lt;/a&gt; feat!: disallow multiple configuration comments for same rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18157&quot;&gt;#18157&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c173dc1f3d36a28cb2543e93675c2fbdb6fa9f1&quot;&gt;&lt;code&gt;1c173dc&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;ignoreClassWithStaticInitBlock&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18170&quot;&gt;#18170&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a451b32b33535a57b4b7e24291f30760f65460ba&quot;&gt;&lt;code&gt;a451b32&lt;/code&gt;&lt;/a&gt; feat: make &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; report more granular errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18082&quot;&gt;#18082&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c49ed63265fc8e0cccea404810a4c5075d396a15&quot;&gt;&lt;code&gt;c49ed63&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;complexity&lt;/a&gt; rule for optional chaining &amp;amp; default values (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18152&quot;&gt;#18152&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/11144a2671b2404b293f656be111221557f3390f&quot;&gt;&lt;code&gt;11144a2&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; option added &lt;code&gt;allowImportNames&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16196&quot;&gt;#16196&lt;/a&gt;) (M Pater)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e37153f71f173e8667273d6298bef81e0d33f9ba&quot;&gt;&lt;code&gt;e37153f&lt;/code&gt;&lt;/a&gt; fix: improve error message for invalid rule config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18147&quot;&gt;#18147&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af6e17081fa6c343474959712e7a4a20f8b304e2&quot;&gt;&lt;code&gt;af6e170&lt;/code&gt;&lt;/a&gt; fix: stop linting files after an error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18155&quot;&gt;#18155&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba1c1bbc6ba9d57a83d04f450566337d3c3b0448&quot;&gt;&lt;code&gt;ba1c1bb&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/337cdf9f7ad939df7bc55c23d953e12d847b6ecc&quot;&gt;&lt;code&gt;337cdf9&lt;/code&gt;&lt;/a&gt; docs: Explain limitations of RuleTester fix testing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18175&quot;&gt;#18175&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c7abd8936193a87be274174c47d6775e6220e354&quot;&gt;&lt;code&gt;c7abd89&lt;/code&gt;&lt;/a&gt; docs: Explain Node.js version support (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18176&quot;&gt;#18176&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d961eeb855b6dd9118a78165e358e454eb1d090d&quot;&gt;&lt;code&gt;d961eeb&lt;/code&gt;&lt;/a&gt; docs: show red underlines in examples in rules docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18041&quot;&gt;#18041&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/558274abbd25ef269f4994cf258b2e44afbad548&quot;&gt;&lt;code&gt;558274a&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2908b9b96ab7a25fe8044a1755030b18186a75b0&quot;&gt;&lt;code&gt;2908b9b&lt;/code&gt;&lt;/a&gt; docs: Update release documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18174&quot;&gt;#18174&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f1260e863f53e2a5891163485a67c55d41993aa&quot;&gt;&lt;code&gt;1f1260e&lt;/code&gt;&lt;/a&gt; docs: replace HackerOne link with GitHub advisory (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18165&quot;&gt;#18165&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5ef3cd6953bb40108556e0465653898ffed8420&quot;&gt;&lt;code&gt;e5ef3cd&lt;/code&gt;&lt;/a&gt; docs: add inline cases condition in &lt;a href=&quot;https://eslint.org/docs/rules/no-fallthrough&quot;&gt;&lt;code&gt;no-fallthrough&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18158&quot;&gt;#18158&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/450d0f044023843b1790bd497dfca45dcbdb41e4&quot;&gt;&lt;code&gt;450d0f0&lt;/code&gt;&lt;/a&gt; docs: fix &lt;code&gt;ignore&lt;/code&gt; option docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18154&quot;&gt;#18154&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/75092764db117252067558bd3fbbf0c66ac081b7&quot;&gt;&lt;code&gt;7509276&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.0.0-beta.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18180&quot;&gt;#18180&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/96087b33dc10311bba83e22cc968919c358a0188&quot;&gt;&lt;code&gt;96087b3&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/925afa2b0c882f77f6b4411bdca3cb8ad6934b56&quot;&gt;&lt;code&gt;925afa2&lt;/code&gt;&lt;/a&gt; chore: Remove some uses of &lt;code&gt;lodash.merge&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18179&quot;&gt;#18179&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/972ef155a94ad2cc85db7d209ad869869222c14c&quot;&gt;&lt;code&gt;972ef15&lt;/code&gt;&lt;/a&gt; chore: remove invalid type in @eslint/js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18164&quot;&gt;#18164&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.0.0-beta.1 released</title>
    <link href="https://eslint.org/blog/2024/02/eslint-v9.0.0-beta.1-released/"/>
    <updated>2024-02-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/02/eslint-v9.0.0-beta.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@9.0.0-beta.1 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/next/use/migrate-to-9.0.0&quot;&gt;migration guide&lt;/a&gt; describing the breaking changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74124c20287fac1995c3f4e553f0723c066f311d&quot;&gt;&lt;code&gt;74124c2&lt;/code&gt;&lt;/a&gt; feat: add suggestions to &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;&lt;code&gt;use-isnan&lt;/code&gt;&lt;/a&gt; in &lt;code&gt;indexOf&lt;/code&gt; &amp;amp; &lt;code&gt;lastIndexOf&lt;/code&gt; calls (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18063&quot;&gt;#18063&lt;/a&gt;) (StyleShit)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0cb4914ef93cd572ba368d390b1cf0b93f578a9d&quot;&gt;&lt;code&gt;0cb4914&lt;/code&gt;&lt;/a&gt; fix: validate options when comment with just severity enables rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18133&quot;&gt;#18133&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5fe095cf718b063dc5e58089b0a6cbcd53da7925&quot;&gt;&lt;code&gt;5fe095c&lt;/code&gt;&lt;/a&gt; docs: show v8.57.0 as latest version in dropdown (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18142&quot;&gt;#18142&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7db5bb270f95d1472de0bfed0e33ed5ab294942e&quot;&gt;&lt;code&gt;7db5bb2&lt;/code&gt;&lt;/a&gt; docs: Show prerelease version in dropdown (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18135&quot;&gt;#18135&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/73a5f0641b43e169247b0000f44a366ee6bbc4f2&quot;&gt;&lt;code&gt;73a5f06&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f95cd27679eef228173e27e170429c9710c939b3&quot;&gt;&lt;code&gt;f95cd27&lt;/code&gt;&lt;/a&gt; docs: Disallow multiple rule configuration comments in the same example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18116&quot;&gt;#18116&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d8068ec70fac050e900dc400510a4ad673e17633&quot;&gt;&lt;code&gt;d8068ec&lt;/code&gt;&lt;/a&gt; docs: Update link for schema examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18112&quot;&gt;#18112&lt;/a&gt;) (Svetlana)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9f2f3343e7c197e5e962c68ef202d6a1646866e&quot;&gt;&lt;code&gt;c9f2f33&lt;/code&gt;&lt;/a&gt; build: changelog update for 8.57.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18144&quot;&gt;#18144&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/32ffdd181aa673ccc596f714d10a2f879ec622a7&quot;&gt;&lt;code&gt;32ffdd1&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.0.0-beta.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18146&quot;&gt;#18146&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e41425b5c3b4c885f2679a3663bd081911a8b570&quot;&gt;&lt;code&gt;e41425b&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb3b9c68fe714bb8aa305be5f019a7a42f4374ee&quot;&gt;&lt;code&gt;bb3b9c6&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@3.0.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18145&quot;&gt;#18145&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e462524cc318ffacecd266e6fe1038945a0b02e9&quot;&gt;&lt;code&gt;e462524&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-release@3.2.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18138&quot;&gt;#18138&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e13a6beb587e624cc95ae16eefe503ad024b11b&quot;&gt;&lt;code&gt;8e13a6b&lt;/code&gt;&lt;/a&gt; chore: fix spelling mistake in &lt;a href=&quot;http://readme.md/&quot;&gt;README.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18128&quot;&gt;#18128&lt;/a&gt;) (Will Eastcott)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66f52e276c31487424bcf54e490c4ac7ef70f77f&quot;&gt;&lt;code&gt;66f52e2&lt;/code&gt;&lt;/a&gt; chore: remove unused tools rule-types.json, update-rule-types.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18125&quot;&gt;#18125&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf0c7effdba51c48b929d06ce1965408a912dc77&quot;&gt;&lt;code&gt;bf0c7ef&lt;/code&gt;&lt;/a&gt; ci: fix sync-labels value of pr-labeler (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18124&quot;&gt;#18124&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cace6d0a3afa5c84b18abee4ef8c598125143461&quot;&gt;&lt;code&gt;cace6d0&lt;/code&gt;&lt;/a&gt; ci: add PR labeler action (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18109&quot;&gt;#18109&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a65d3e4a6ee16e3f607d69b998a08c3fed505ca&quot;&gt;&lt;code&gt;1a65d3e&lt;/code&gt;&lt;/a&gt; chore: export &lt;code&gt;base&lt;/code&gt; config from &lt;code&gt;eslint-config-eslint&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18119&quot;&gt;#18119&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9aa4df3f4d85960eee72923f3b9bfc88e62f04fb&quot;&gt;&lt;code&gt;9aa4df3&lt;/code&gt;&lt;/a&gt; refactor: remove &lt;code&gt;globals&lt;/code&gt; dependency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18115&quot;&gt;#18115&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.57.0 released</title>
    <link href="https://eslint.org/blog/2024/02/eslint-v8.57.0-released/"/>
    <updated>2024-02-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/02/eslint-v8.57.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This release backports from v9.x to v8.x two new features and several bug fixes related to the flat config system to help plugins, integrations and users migrate to flat config ahead of the final v9.0.0 release.&lt;/p&gt;
&lt;h3 id=&quot;support-for-eslint.config.mjs-and-eslint.config.cjs&quot; tabindex=&quot;-1&quot;&gt;Support for &lt;code&gt;eslint.config.mjs&lt;/code&gt; and &lt;code&gt;eslint.config.cjs&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;This release introduces support for &lt;code&gt;eslint.config.mjs&lt;/code&gt; and &lt;code&gt;eslint.config.cjs&lt;/code&gt; &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files-new#configuration-file&quot;&gt;configuration files&lt;/a&gt; to v8.x in addition to &lt;code&gt;eslint.config.js&lt;/code&gt;, making it easier to use the module format you’d prefer regardless of the module format of the containing package.&lt;/p&gt;
&lt;h3 id=&quot;new-api-loadeslint()&quot; tabindex=&quot;-1&quot;&gt;New API &lt;code&gt;loadESLint()&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;ESLint now exports a new function &lt;a href=&quot;https://eslint.org/docs/latest/integrate/nodejs-api#loadeslint&quot;&gt;&lt;code&gt;loadESLint()&lt;/code&gt;&lt;/a&gt; from its main entry point. Integrations can use this function to get either the &lt;code&gt;FlatESLint&lt;/code&gt; class (&lt;code&gt;ESLint&lt;/code&gt; class in v9.x) or the &lt;code&gt;ESLint&lt;/code&gt; class (&lt;code&gt;LegacyESLint&lt;/code&gt; class in v9.x) and thus easily swap between flat config and eslintrc APIs.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1120b9b7b97f10f059d8b7ede19de2572f892366&quot;&gt;&lt;code&gt;1120b9b&lt;/code&gt;&lt;/a&gt; feat: Add loadESLint() API method for v8 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18098&quot;&gt;#18098&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dca7d0f1c262bc72310147bcefe1d04ecf60acbc&quot;&gt;&lt;code&gt;dca7d0f&lt;/code&gt;&lt;/a&gt; feat: Enable &lt;code&gt;eslint.config.mjs&lt;/code&gt; and &lt;code&gt;eslint.config.cjs&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18066&quot;&gt;#18066&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2196d97094ba94d6d750828879a29538d1600de5&quot;&gt;&lt;code&gt;2196d97&lt;/code&gt;&lt;/a&gt; fix: handle absolute file paths in &lt;code&gt;FlatRuleTester&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18064&quot;&gt;#18064&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/69dd1d1387b7b53617548d1f9f2c149f179e6e17&quot;&gt;&lt;code&gt;69dd1d1&lt;/code&gt;&lt;/a&gt; fix: Ensure config keys are printed for config errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18067&quot;&gt;#18067&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9852a31edcf054bd5d15753ef18e2ad3216b1b71&quot;&gt;&lt;code&gt;9852a31&lt;/code&gt;&lt;/a&gt; fix: deep merge behavior in flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18065&quot;&gt;#18065&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c7e9b0b539ba879ac1799e81f3b6add2eed4b2f&quot;&gt;&lt;code&gt;4c7e9b0&lt;/code&gt;&lt;/a&gt; fix: allow circular references in config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18056&quot;&gt;#18056&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/84922d0bfa10689a34a447ab8e55975ff1c1c708&quot;&gt;&lt;code&gt;84922d0&lt;/code&gt;&lt;/a&gt; docs: Show prerelease version in dropdown (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18139&quot;&gt;#18139&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b8c3636a3d7536535a6878eca0e5b773e4829d4&quot;&gt;&lt;code&gt;5b8c363&lt;/code&gt;&lt;/a&gt; docs: Switch to Ethical Ads (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18117&quot;&gt;#18117&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/77dbfd9887b201a46fc68631cbde50c08e1a8dbf&quot;&gt;&lt;code&gt;77dbfd9&lt;/code&gt;&lt;/a&gt; docs: show NEXT in version selectors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18052&quot;&gt;#18052&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1813aecc4660582b0678cf32ba466eb9674266c4&quot;&gt;&lt;code&gt;1813aec&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.57.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18143&quot;&gt;#18143&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c356bb0c6f53c570224f8e9f02c4baca8fc6d2f&quot;&gt;&lt;code&gt;5c356bb&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f4a1fe2e45aa1089fe775290bf530de82f34bf16&quot;&gt;&lt;code&gt;f4a1fe2&lt;/code&gt;&lt;/a&gt; test: add more tests for ignoring files and directories (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18068&quot;&gt;#18068&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/42c0aefaf6ea8b998b1c6db61906a79c046d301a&quot;&gt;&lt;code&gt;42c0aef&lt;/code&gt;&lt;/a&gt; ci: Enable CI for &lt;code&gt;v8.x&lt;/code&gt; branch (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18047&quot;&gt;#18047&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint&#39;s 2023 year in review</title>
    <link href="https://eslint.org/blog/2024/02/eslint-2023-year-review/"/>
    <updated>2024-02-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/02/eslint-2023-year-review/</id>
    <content type="html">&lt;p&gt;The plan for 2023 centered around our first major release &lt;a href=&quot;https://eslint.org/blog/2021/10/eslint-v8.0.0-released/&quot;&gt;since 2021&lt;/a&gt;, ESLint v9.0.0. Most of the year was spent preparing for the release, building out the new configuration system (flat config) and communicating the impact to the ecosystem throughout the year.&lt;/p&gt;
&lt;h2 id=&quot;release-of-eslint-v9.0.0-and-the-new-configuration-system&quot; tabindex=&quot;-1&quot;&gt;Release of ESLint v9.0.0 and the new configuration system&lt;/h2&gt;
&lt;p&gt;While there are &lt;a href=&quot;https://eslint.org/blog/2023/11/whats-coming-in-eslint-9.0.0/&quot;&gt;a lot of changes in v9.0.0&lt;/a&gt;, the biggest change is making flat config the default configuration system. The old (eslintrc) configuration is still available via an environment variable, and we published the &lt;a href=&quot;https://eslint.org/blog/2023/10/flat-config-rollout-plans/&quot;&gt;rollout plan&lt;/a&gt; outlining how the transition will occur from v8.x through to v10.x.&lt;/p&gt;
&lt;p&gt;Just before the end of the year, we &lt;a href=&quot;https://eslint.org/blog/2023/12/eslint-v9.0.0-alpha.0-released/&quot;&gt;released ESLint v9.0.0-alpha.0&lt;/a&gt;. We anticipate a final v9.0.0 release in the spring of 2024.&lt;/p&gt;
&lt;h2 id=&quot;other-changes&quot; tabindex=&quot;-1&quot;&gt;Other changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2023/10/deprecating-formatting-rules/&quot;&gt;Deprecation of formatting rules&lt;/a&gt; - in a significant shift from ESLint’s roots, we decided to officially deprecate formatting rules&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/&quot;&gt;Changes to rule API&lt;/a&gt; - for those who write their own rules, we announced important changes to the rule API that will prepare ESLint for our next step: &lt;a href=&quot;https://github.com/eslint/rfcs/blob/main/designs/2022-languages/README.md&quot;&gt;language plugins&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;updates-to-support-the-latest-ecmascript-features&quot; tabindex=&quot;-1&quot;&gt;Updates to support the latest ECMAScript features&lt;/h2&gt;
&lt;p&gt;The team spends much of the year anticipating new ECMAScript features and updating ESLint accordingly. 2023 was an outlier in that most of the changes weren’t syntax-related, and so there wasn’t a lot of additional work. The most significant syntax change, &lt;a href=&quot;https://github.com/tc39/proposal-hashbang&quot;&gt;hashbang comments&lt;/a&gt;, is something that ESLint already handled to support Node.js.&lt;/p&gt;
&lt;h2 id=&quot;financials-review&quot; tabindex=&quot;-1&quot;&gt;Financials review&lt;/h2&gt;
&lt;p&gt;The next few sections dig into the project financials. All of this information is gathered from the Open Collective transaction list with the exception of Tidelift payments (which are retrieved from Tidelift directly). Because transactions come in all throughout the course of a day, we decided to consider transactions beginning on January 1, 2023 at midnight UTC and ending on December 31, 2023 at 11:59 UTC as our fiscal 2023.&lt;/p&gt;
&lt;h3 id=&quot;income-review&quot; tabindex=&quot;-1&quot;&gt;Income review&lt;/h3&gt;
&lt;p&gt;During 2023, ESLint received $180,646.53 USD from all of our income sources. You can see the breakdown of our income sources in the following table.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Source&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Amount&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Open Collective&lt;/td&gt;
&lt;td&gt;$118,381.30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Sponsors&lt;/td&gt;
&lt;td&gt;$25,190.89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tidelift&lt;/td&gt;
&lt;td&gt;$30,077.84&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Carbon Ads&lt;/td&gt;
&lt;td&gt;$6,380.89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Thanks.dev&lt;/td&gt;
&lt;td&gt;$524.61&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;http://stackaid.us/&quot;&gt;Stackaid.us&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;$91.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$180,646.53&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;As usual, most of our donations came through Open Collective. Notably, our website ad revenue dropped roughly 50% from 2022, following an overall softening of the display ad business. We’ll be looking at options to improve our website ad revenue in 2024.&lt;/p&gt;
&lt;p&gt;The newer sponsoring options, Thanks.dev and &lt;a href=&quot;http://stackaid.us/&quot;&gt;Stackaid.us&lt;/a&gt;, didn’t provide much income but are both interesting ideas that we’ll keep participating in.&lt;/p&gt;
&lt;p&gt;We are grateful to the companies and individuals who generously donated to support ESLint. We know that there has been a lot of turbulence in the tech industry in the past year, and we really appreciate everyone who still decided to sponsor ESLint.&lt;/p&gt;
&lt;h3 id=&quot;top-sponsors&quot; tabindex=&quot;-1&quot;&gt;Top sponsors&lt;/h3&gt;
&lt;p&gt;While we are grateful to all of our sponsors, both large and small, we feel especially grateful to those who donated $1,000 USD or more during 2023. These folks totaled $127,377.42 USD during 2023, representing 70% of our total income.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Sponsor&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;2023 Donation Total&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chrome Frameworks Fund&lt;/td&gt;
&lt;td&gt;$24,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Automattic&lt;/td&gt;
&lt;td&gt;$24,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Salesforce&lt;/td&gt;
&lt;td&gt;$12,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Airbnb&lt;/td&gt;
&lt;td&gt;$12,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Indeed&lt;/td&gt;
&lt;td&gt;$10,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Liftoff&lt;/td&gt;
&lt;td&gt;$6,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cybozu&lt;/td&gt;
&lt;td&gt;$4,976.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sentry&lt;/td&gt;
&lt;td&gt;$4,624.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;American Express&lt;/td&gt;
&lt;td&gt;$4,467.74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RIDI&lt;/td&gt;
&lt;td&gt;$4,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ThemeIsle&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Icons8&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discord&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anagram Solver&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ignition&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HeroCoders&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transloadit&lt;/td&gt;
&lt;td&gt;$2,309.68&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nx (by Nrwl)&lt;/td&gt;
&lt;td&gt;$1,800.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QuickBooks Tool hub&lt;/td&gt;
&lt;td&gt;$1,600.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yannick Croissant&lt;/td&gt;
&lt;td&gt;$1,200.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&quot;expenses-review&quot; tabindex=&quot;-1&quot;&gt;Expenses review&lt;/h3&gt;
&lt;p&gt;In 2023, we spent $185,646.98 USD on the ESLint project as a whole. This includes regular maintenance and development as well as other costs related to the project. See the table below for an overview.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Amount&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Maintenance and Development&lt;/td&gt;
&lt;td&gt;-$66,910.37&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TSC Stipend (Tidelift)&lt;/td&gt;
&lt;td&gt;-$30,077.84&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Triage and Support&lt;/td&gt;
&lt;td&gt;-$10,307.78&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Technical Writing&lt;/td&gt;
&lt;td&gt;-$8,155.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contributor Pool&lt;/td&gt;
&lt;td&gt;-$4,500.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Health Insurance&lt;/td&gt;
&lt;td&gt;-$13,447.41&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Source Collective Fee&lt;/td&gt;
&lt;td&gt;-$9,206.88&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ecosystem/Dependencies&lt;/td&gt;
&lt;td&gt;-$24,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Community Management&lt;/td&gt;
&lt;td&gt;-$15,599.84&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payment Processor Fee&lt;/td&gt;
&lt;td&gt;-$2,854.51&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Workspace&lt;/td&gt;
&lt;td&gt;-$187.35&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-$185,646.98&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;As a reminder, the Contributor Pool is money we award for contributions to people who are not on the ESLint team as a way to thank them for making impactful contributions to the project. Community Management refers to the ongoing work required to manage the ESLint Community GitHub organization.&lt;/p&gt;
&lt;p&gt;You may notice that our expenses exceeded our income in 2023. Thankfully, we keep a large reserve fund so we can handle any unexpected expenses and to hedge against loss of sponsorships.&lt;/p&gt;
&lt;h3 id=&quot;supporting-our-dependencies-and-ecosystem&quot; tabindex=&quot;-1&quot;&gt;Supporting our dependencies and ecosystem&lt;/h3&gt;
&lt;p&gt;In 2023, the ESLint project donated $24,400.00 USD to ecosystem projects and our dependencies (listed in the previous table as “Ecosystem/Dependencies”). This is part of our ongoing commitment to supporting projects that are important to ESLint.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Project&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Donations&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;typescript-eslint&lt;/td&gt;
&lt;td&gt;-$11,800.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ajv&lt;/td&gt;
&lt;td&gt;-$1,800.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;debug&lt;/td&gt;
&lt;td&gt;-$1,800.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;eslint-plugin-import&lt;/td&gt;
&lt;td&gt;-$1,800.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;jsx-eslint&lt;/td&gt;
&lt;td&gt;-$1,800.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;lint-staged&lt;/td&gt;
&lt;td&gt;-$1,800.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rollup&lt;/td&gt;
&lt;td&gt;-$1,800.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sindre Sorhus&lt;/td&gt;
&lt;td&gt;-$1,800.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-$24,400.00&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;looking-forward-to-2024&quot; tabindex=&quot;-1&quot;&gt;Looking forward to 2024&lt;/h2&gt;
&lt;p&gt;Once v9.0.0 is released, we’ll be in a good spot to finish work on language plugins and then move on to the &lt;a href=&quot;https://github.com/eslint/eslint/discussions/16557&quot;&gt;complete rewrite&lt;/a&gt; we talked about in 2023. It’s hard to believe ESLint is heading into its 11th year, and we’re making the preparations to ensure the project will continue to be useful to the JavaScript community for the next decade.&lt;/p&gt;
&lt;p&gt;We know that ESLint is an important part of your toolchain and we appreciate your ongoing support as our team of volunteers moves the project forward.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.0.0-beta.0 released</title>
    <link href="https://eslint.org/blog/2024/02/eslint-v9.0.0-beta.0-released/"/>
    <updated>2024-02-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/02/eslint-v9.0.0-beta.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@9.0.0-beta.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/next/use/migrate-to-9.0.0&quot;&gt;migration guide&lt;/a&gt; describing the breaking changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h3 id=&quot;new-default-values-%E2%80%8B%E2%80%8Bfor-rule-options&quot; tabindex=&quot;-1&quot;&gt;New default values ​​for rule options&lt;/h3&gt;
&lt;p&gt;In v9.0.0, the following rules have new defaults:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;: The default value of the &lt;code&gt;caughtErrors&lt;/code&gt; option is changed from &lt;code&gt;&amp;quot;none&amp;quot;&lt;/code&gt; to &lt;code&gt;&amp;quot;all&amp;quot;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-useless-computed-key&lt;/code&gt;: The default value of the &lt;code&gt;enforceForClassMembers&lt;/code&gt; option is changed from &lt;code&gt;false&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;stricter-ruletester-validations&quot; tabindex=&quot;-1&quot;&gt;Stricter &lt;code&gt;RuleTester&lt;/code&gt; validations&lt;/h3&gt;
&lt;p&gt;This release adds more checks in &lt;code&gt;RuleTester&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Messages cannot have unsubstituted placeholders.&lt;/li&gt;
&lt;li&gt;Suggestions must change the code.&lt;/li&gt;
&lt;li&gt;Test case &lt;code&gt;output&lt;/code&gt; must be different from &lt;code&gt;code&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Test error objects must specify &lt;code&gt;message&lt;/code&gt; or &lt;code&gt;messageId&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Test error object must specify &lt;code&gt;suggestions&lt;/code&gt; if the actual error provides suggestions.&lt;/li&gt;
&lt;li&gt;Test suggestion objects must specify &lt;code&gt;desc&lt;/code&gt; or &lt;code&gt;messageId&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Test suggestion objects must specify &lt;code&gt;output&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filename&lt;/code&gt; and &lt;code&gt;only&lt;/code&gt; properties of test objects must be of the expected type (&lt;code&gt;string&lt;/code&gt; and &lt;code&gt;boolean&lt;/code&gt;, respectively).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;new-api-loadeslint()&quot; tabindex=&quot;-1&quot;&gt;New API &lt;code&gt;loadESLint()&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;ESLint now exports a new function &lt;a href=&quot;https://eslint.org/docs/next/integrate/nodejs-api#loadeslint&quot;&gt;&lt;code&gt;loadESLint()&lt;/code&gt;&lt;/a&gt; from its main entry point. Integrations can use this function to get either the &lt;code&gt;ESLint&lt;/code&gt; class (former &lt;code&gt;FlatESLint&lt;/code&gt; class) or the &lt;code&gt;LegacyESLint&lt;/code&gt; class (former &lt;code&gt;ESLint&lt;/code&gt; class) and thus easily swap between flat config and eslintrc APIs.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/916364692bae6a93c10b5d48fc1e9de1677d0d09&quot;&gt;&lt;code&gt;9163646&lt;/code&gt;&lt;/a&gt; feat!: Rule Tester checks for missing placeholder data in the message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18073&quot;&gt;#18073&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c4d51d55fa5435ab18b6bf46f6b97df0f480ae7&quot;&gt;&lt;code&gt;3c4d51d&lt;/code&gt;&lt;/a&gt; feat!: default for &lt;code&gt;enforceForClassMembers&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;&lt;code&gt;no-useless-computed-key&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18054&quot;&gt;#18054&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/47e60f85e0c3f275207bb4be9b5947166a190477&quot;&gt;&lt;code&gt;47e60f8&lt;/code&gt;&lt;/a&gt; feat!: Stricter rule test validations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17654&quot;&gt;#17654&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a945890105d307541dcbff15f6438c19b476ade&quot;&gt;&lt;code&gt;1a94589&lt;/code&gt;&lt;/a&gt; feat!: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; default caughtErrors to ‘all’ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18043&quot;&gt;#18043&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53f0f47badffa1b04ec2836f2ae599f4fc464da2&quot;&gt;&lt;code&gt;53f0f47&lt;/code&gt;&lt;/a&gt; feat: Add loadESLint() API method for v9 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18097&quot;&gt;#18097&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d11d46e890a9f1b5f639b8ee034ffa9bd453e42&quot;&gt;&lt;code&gt;2d11d46&lt;/code&gt;&lt;/a&gt; feat: add suggestions to &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;&lt;code&gt;use-isnan&lt;/code&gt;&lt;/a&gt; in binary expressions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17996&quot;&gt;#17996&lt;/a&gt;) (StyleShit)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4d26fd3d1f59c1c0f2266664887ad18692039f3&quot;&gt;&lt;code&gt;c4d26fd&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;&lt;code&gt;use-isnan&lt;/code&gt;&lt;/a&gt; doesn’t report on &lt;code&gt;SequenceExpression&lt;/code&gt;s (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18059&quot;&gt;#18059&lt;/a&gt;) (StyleShit)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f1c7e6fc8ea77fcdae4ad1f8fe1cd104a281d2e9&quot;&gt;&lt;code&gt;f1c7e6f&lt;/code&gt;&lt;/a&gt; docs: Switch to Ethical Ads (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18090&quot;&gt;#18090&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/15c143f96ef164943fd3d39b5ad79d9a4a40de8f&quot;&gt;&lt;code&gt;15c143f&lt;/code&gt;&lt;/a&gt; docs: JS Foundation -&amp;gt; OpenJS Foundation in PR template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18092&quot;&gt;#18092&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ea339e658d29791528ab26aabd86f1683cab6c3&quot;&gt;&lt;code&gt;6ea339e&lt;/code&gt;&lt;/a&gt; docs: add stricter rule test validations to v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18085&quot;&gt;#18085&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c816f193eecace5efc6166efa2852a829175ef8&quot;&gt;&lt;code&gt;3c816f1&lt;/code&gt;&lt;/a&gt; docs: use relative link from CLI to core concepts (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18083&quot;&gt;#18083&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9458735381269d12b24f76e1b2b6fda1bc5a509b&quot;&gt;&lt;code&gt;9458735&lt;/code&gt;&lt;/a&gt; docs: fix malformed &lt;code&gt;eslint&lt;/code&gt; config comments in rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18078&quot;&gt;#18078&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/07a1ada7166b76c7af6186f4c5e5de8b8532edba&quot;&gt;&lt;code&gt;07a1ada&lt;/code&gt;&lt;/a&gt; docs: link from &lt;code&gt;--fix&lt;/code&gt; CLI doc to the relevant core concept (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18080&quot;&gt;#18080&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b844324e4e8f511c9985a96c7aca063269df9570&quot;&gt;&lt;code&gt;b844324&lt;/code&gt;&lt;/a&gt; docs: Update team responsibilities (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18048&quot;&gt;#18048&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aadfb609f1b847e492fc3b28ced62f830fe7f294&quot;&gt;&lt;code&gt;aadfb60&lt;/code&gt;&lt;/a&gt; docs: document languageOptions and other v9 changes for context (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18074&quot;&gt;#18074&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/857e242584227181ecb8af79fc6bc236b9975228&quot;&gt;&lt;code&gt;857e242&lt;/code&gt;&lt;/a&gt; docs: tweak explanation for meta.docs rule properties (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18057&quot;&gt;#18057&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10485e8b961d045514bc1e34227cf09867a6c4b7&quot;&gt;&lt;code&gt;10485e8&lt;/code&gt;&lt;/a&gt; docs: recommend messageId over message for reporting rule violations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18050&quot;&gt;#18050&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/98b5ab406bac6279eadd84e8a5fd5a01fc586ff1&quot;&gt;&lt;code&gt;98b5ab4&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/505fbf4b35c14332bffb0c838cce4843a00fad68&quot;&gt;&lt;code&gt;505fbf4&lt;/code&gt;&lt;/a&gt; docs: update &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18015&quot;&gt;#18015&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c25b4aff1fe35e5bd9d4fcdbb45b739b6d253828&quot;&gt;&lt;code&gt;c25b4af&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e40d1d74a5b9788cbec195f4e602b50249f26659&quot;&gt;&lt;code&gt;e40d1d7&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.0.0-beta.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18108&quot;&gt;#18108&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9870f93e714edefb410fccae1e9924a3c1972a2e&quot;&gt;&lt;code&gt;9870f93&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c62e797a433e5fc298b976872a89c594f88bb19&quot;&gt;&lt;code&gt;2c62e79&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@3.0.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18107&quot;&gt;#18107&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81f0294e651928b49eb49495b90b54376073a790&quot;&gt;&lt;code&gt;81f0294&lt;/code&gt;&lt;/a&gt; chore: upgrade espree@10.0.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18106&quot;&gt;#18106&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e2b2922aa65bda54b0966d1bf71acda82b3047c&quot;&gt;&lt;code&gt;5e2b292&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-visitor-keys@4.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18105&quot;&gt;#18105&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce838adc3b673e52a151f36da0eedf5876977514&quot;&gt;&lt;code&gt;ce838ad&lt;/code&gt;&lt;/a&gt; chore: replace dependency npm-run-all with npm-run-all2 ^5.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18045&quot;&gt;#18045&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54df731174d2528170560d1f765e1336eca0a8bd&quot;&gt;&lt;code&gt;54df731&lt;/code&gt;&lt;/a&gt; chore: update dependency markdownlint-cli to ^0.39.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18084&quot;&gt;#18084&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f06a606845f40aaf0fea1fd83d5930747c5acec&quot;&gt;&lt;code&gt;8f06a60&lt;/code&gt;&lt;/a&gt; chore: update dependency shelljs to ^0.8.5 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18079&quot;&gt;#18079&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/93ffe30da5e2127e336c1c22e69e09ec0558a8e6&quot;&gt;&lt;code&gt;93ffe30&lt;/code&gt;&lt;/a&gt; chore: update dependency file-entry-cache to v8 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17903&quot;&gt;#17903&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.0.0-alpha.2 released</title>
    <link href="https://eslint.org/blog/2024/01/eslint-v9.0.0-alpha.2-released/"/>
    <updated>2024-01-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/01/eslint-v9.0.0-alpha.2-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@9.0.0-alpha.2 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/next/use/migrate-to-9.0.0&quot;&gt;migration guide&lt;/a&gt; describing the breaking changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h3 id=&quot;no-restricted-imports-configuration-improvements&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt; configuration improvements&lt;/h3&gt;
&lt;p&gt;In v8.x, if multiple entries in the &lt;code&gt;paths&lt;/code&gt; array of your configuration for the &lt;code&gt;no-restricted-imports&lt;/code&gt; rule had the same &lt;code&gt;name&lt;/code&gt; property, only the last one would apply. In v9.0.0, all entries apply, allowing for specifying different error messages for different imported names.&lt;/p&gt;
&lt;h3 id=&quot;ruletester-checks-for-duplicate-tests&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;RuleTester&lt;/code&gt; checks for duplicate tests&lt;/h3&gt;
&lt;p&gt;As of v9.0.0, &lt;code&gt;RuleTester&lt;/code&gt; detects and reports duplicate test cases.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57089cb5166acf8b8bdba8a8dbeb0a129f841478&quot;&gt;&lt;code&gt;57089cb&lt;/code&gt;&lt;/a&gt; feat!: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; allow multiple config entries for same path (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18021&quot;&gt;#18021&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e1d54960051b59e1c731fa44c2ef843290b1335&quot;&gt;&lt;code&gt;2e1d549&lt;/code&gt;&lt;/a&gt; feat!: detect duplicate test cases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17955&quot;&gt;#17955&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26093c76903310d12f21e24e73d97c0d2ac1f359&quot;&gt;&lt;code&gt;26093c7&lt;/code&gt;&lt;/a&gt; feat: fix false negatives in &lt;a href=&quot;https://eslint.org/docs/rules/no-this-before-super&quot;&gt;&lt;code&gt;no-this-before-super&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17762&quot;&gt;#17762&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5471e435d12bf5add9869d81534b147e445a2368&quot;&gt;&lt;code&gt;5471e43&lt;/code&gt;&lt;/a&gt; feat: convert unsafe autofixes to suggestions in &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;&lt;code&gt;no-implicit-coercion&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17985&quot;&gt;#17985&lt;/a&gt;) (Gürgün Dayıoğlu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3051be6366b00e1571e702023a351177d24e443&quot;&gt;&lt;code&gt;e3051be&lt;/code&gt;&lt;/a&gt; feat: emit warning when &lt;code&gt;.eslintignore&lt;/code&gt; file is detected (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17952&quot;&gt;#17952&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/39076fb5e4c7fa10b305d510f489aff34a5f5d99&quot;&gt;&lt;code&gt;39076fb&lt;/code&gt;&lt;/a&gt; fix: handle absolute file paths in &lt;code&gt;RuleTester&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17989&quot;&gt;#17989&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/33d1ab0b6ea5fcebca7284026d2396df41b06566&quot;&gt;&lt;code&gt;33d1ab0&lt;/code&gt;&lt;/a&gt; docs: add more examples to flat config ignores docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18020&quot;&gt;#18020&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6eebca90750ef5c7c99d4fe3658553cf737dab8&quot;&gt;&lt;code&gt;e6eebca&lt;/code&gt;&lt;/a&gt; docs: Update &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;sort-keys&lt;/a&gt; options properties count (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18025&quot;&gt;#18025&lt;/a&gt;) (LB (Ben Johnston))&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fedfd28a46d86b2fbcf06a2328befafd6535a88&quot;&gt;&lt;code&gt;1fedfd2&lt;/code&gt;&lt;/a&gt; docs: Improve flat config ignores docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17997&quot;&gt;#17997&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38b9b06695f88c70441dd15ae5d97ffd8088be23&quot;&gt;&lt;code&gt;38b9b06&lt;/code&gt;&lt;/a&gt; docs: update &lt;a href=&quot;https://eslint.org/docs/rules/valid-typeof&quot;&gt;valid-typeof&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18001&quot;&gt;#18001&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4abfea4c1703a50f1ce639e3207ad342a56f79d&quot;&gt;&lt;code&gt;b4abfea&lt;/code&gt;&lt;/a&gt; docs: Update note about ECMAScript support (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17991&quot;&gt;#17991&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6788873328a7f974d5e45c0be06ca0c7dd409acd&quot;&gt;&lt;code&gt;6788873&lt;/code&gt;&lt;/a&gt; docs: Update release blog post template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17994&quot;&gt;#17994&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f3744278433006042b8d5f4e9e1e488b2bbb011&quot;&gt;&lt;code&gt;1f37442&lt;/code&gt;&lt;/a&gt; docs: Add sections on non-npm plugin configuration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17984&quot;&gt;#17984&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ffdcbb8c51956054d3f81c5ce446c15dcd51a6f&quot;&gt;&lt;code&gt;6ffdcbb&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.0.0-alpha.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18038&quot;&gt;#18038&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c1271528e88d0c3c6a92eeee902001f1703d5c9&quot;&gt;&lt;code&gt;2c12715&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc74c4da99368b97494b924dbea1cb6e87adec53&quot;&gt;&lt;code&gt;cc74c4d&lt;/code&gt;&lt;/a&gt; chore: upgrade espree@10.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18037&quot;&gt;#18037&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dfb68b63ce6e8df6ffe81bd843e650c5b017dce9&quot;&gt;&lt;code&gt;dfb68b6&lt;/code&gt;&lt;/a&gt; chore: use Node.js 20 for docs sites (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18026&quot;&gt;#18026&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c1b8dda169920c4e3b99f6548f9c872d65ee426&quot;&gt;&lt;code&gt;8c1b8dd&lt;/code&gt;&lt;/a&gt; test: add more tests for ignoring files and directories (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18018&quot;&gt;#18018&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60b966b6861da11617ddc15487bd7a51c584c596&quot;&gt;&lt;code&gt;60b966b&lt;/code&gt;&lt;/a&gt; chore: update dependency @eslint/js to v9.0.0-alpha.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/18014&quot;&gt;#18014&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c893bc0bdf1bca256fbab6190358e5f922683249&quot;&gt;&lt;code&gt;c893bc0&lt;/code&gt;&lt;/a&gt; chore: update &lt;code&gt;markdownlint&lt;/code&gt; to &lt;code&gt;v0.33.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17995&quot;&gt;#17995&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.0.0-alpha.1 released</title>
    <link href="https://eslint.org/blog/2024/01/eslint-v9.0.0-alpha.1-released/"/>
    <updated>2024-01-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2024/01/eslint-v9.0.0-alpha.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@9.0.0-alpha.1 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/next/use/migrate-to-9.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h3 id=&quot;no-inner-declarations-new-default-behavior&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;no-inner-declarations&lt;/code&gt; new default behavior&lt;/h3&gt;
&lt;p&gt;In v8.x, &lt;a href=&quot;https://eslint.org/docs/next/rules/no-inner-declarations&quot;&gt;&lt;code&gt;no-inner-declarations&lt;/code&gt;&lt;/a&gt; would flag any functions defined inside of blocks as errors because this behavior was undefined in early versions of JavaScript. As of ES 2015, block-scoped function declarations are well-defined and so we changed the default behavior to not warn on block-scoped functions.&lt;/p&gt;
&lt;h3 id=&quot;no-misleading-character-class-now-highlights-the-offending-characters&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt; now highlights the offending characters&lt;/h3&gt;
&lt;p&gt;In v8.x, the &lt;a href=&quot;https://eslint.org/docs/next/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; rule would highlight an entire regular expression if it contained a misleading character class. In v9.0.0, this rule now highlights just the offending characters to help you more easily find errors.&lt;/p&gt;
&lt;h3 id=&quot;no-unused-vars-varsignorepattern-option-change&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt; &lt;code&gt;varsIgnorePattern&lt;/code&gt; option change&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;varsIgnorePattern&lt;/code&gt; option of &lt;a href=&quot;https://eslint.org/docs/next/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; was incorrectly applied to caught error variables in &lt;code&gt;catch&lt;/code&gt; conditions. In v9.0.0, &lt;code&gt;varsIgnorePattern&lt;/code&gt; no longer applies to caught error variables.&lt;/p&gt;
&lt;h3 id=&quot;new-rule%3A-no-useless-assignment&quot; tabindex=&quot;-1&quot;&gt;New rule: &lt;code&gt;no-useless-assignment&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;ESLint v9.0.0 introduces a new rule, &lt;a href=&quot;https://eslint.org/docs/next/rules/no-useless-assignment&quot;&gt;&lt;code&gt;no-useless-assignment&lt;/code&gt;&lt;/a&gt;, that is designed to catch situations where you’ve assigned a value to a variable and that value is never used. For example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; id &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1234&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;      &lt;span class=&quot;token comment&quot;&gt;// 1234 is never used&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;id &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;calculateId&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;the---output-file-flag-now-guarantees-a-file-is-output&quot; tabindex=&quot;-1&quot;&gt;The &lt;code&gt;--output-file&lt;/code&gt; flag now guarantees a file is output&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;--output-file&lt;/code&gt; CLI flag is designed to output the results of the ESLint run to specified file. Prior to this release, no file would be output if linting passed with no errors or warnings. In v9.0.0, an empty file will be output when linting passes without any errors or warnings.&lt;/p&gt;
&lt;h3 id=&quot;better-scope-analysis&quot; tabindex=&quot;-1&quot;&gt;Better scope analysis&lt;/h3&gt;
&lt;p&gt;In v9.0.0, we updated the behavior of &lt;code&gt;eslint-scope&lt;/code&gt; to fix a couple of longstanding bugs:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Previously, ESLint would treat &lt;code&gt;(&amp;quot;use strict&amp;quot;)&lt;/code&gt; as a strict mode directive even though it is not. We fixed the behavior so only valid strict mode directives are honored.&lt;/li&gt;
&lt;li&gt;The containing scope of a class &lt;code&gt;extends&lt;/code&gt; clause was incorrectly set to be the scope containing the class when it should have been the class scope itself. This has been fixed.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;codepath%23currentsegments-removed&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;CodePath#currentSegments&lt;/code&gt; removed&lt;/h2&gt;
&lt;p&gt;As announced in our &lt;a href=&quot;https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/#codepath%23currentsegments&quot;&gt;previous post&lt;/a&gt;, &lt;code&gt;CodePath#currentSegments&lt;/code&gt; has been removed from the rules API. Please refer to the post for more details.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/701f1afbee34e458b56d2dfa36d9153d6aebea3a&quot;&gt;&lt;code&gt;701f1af&lt;/code&gt;&lt;/a&gt; feat!: no-inner-declaration new default behaviour and option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17885&quot;&gt;#17885&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bde51055530d4a71bd9f48c90ed7de9c0b767d86&quot;&gt;&lt;code&gt;bde5105&lt;/code&gt;&lt;/a&gt; fix!: handle &lt;code&gt;--output-file&lt;/code&gt; for empty output when saving to disk (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17957&quot;&gt;#17957&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/07107a5904c2580243971c8ad7f26a04738b712e&quot;&gt;&lt;code&gt;07107a5&lt;/code&gt;&lt;/a&gt; fix!: upgrade eslint-scope@8.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17942&quot;&gt;#17942&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ee0f6ca5d756da647e4e76bf3daa82a5905a792&quot;&gt;&lt;code&gt;3ee0f6c&lt;/code&gt;&lt;/a&gt; fix!: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; &lt;code&gt;varsIgnorePattern&lt;/code&gt; behavior with catch arguments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17932&quot;&gt;#17932&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51f8bc836bf0b13dad3a897ae84259bcdaed2431&quot;&gt;&lt;code&gt;51f8bc8&lt;/code&gt;&lt;/a&gt; fix!: configuration comments with just severity should retain options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17945&quot;&gt;#17945&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d191bdd67214c33e65bd605e616ca7cc947fd045&quot;&gt;&lt;code&gt;d191bdd&lt;/code&gt;&lt;/a&gt; feat!: Remove CodePath#currentSegments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17936&quot;&gt;#17936&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a630edd809894dc38752705bb5954d847987f031&quot;&gt;&lt;code&gt;a630edd&lt;/code&gt;&lt;/a&gt; feat: maintain latest ecma version in ESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17958&quot;&gt;#17958&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4e0503a56beea1222be266cc6b186d89410d1f2&quot;&gt;&lt;code&gt;b4e0503&lt;/code&gt;&lt;/a&gt; feat: add &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-assignment&quot;&gt;&lt;code&gt;no-useless-assignment&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17625&quot;&gt;#17625&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/287c4b7d498746b43392ee4fecd6904a9cd4b30b&quot;&gt;&lt;code&gt;287c4b7&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; granular errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17515&quot;&gt;#17515&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d11f3dac1b76188d7fda6e772e89b5c3945ac4d&quot;&gt;&lt;code&gt;6d11f3d&lt;/code&gt;&lt;/a&gt; fix: Ensure config keys are printed for config errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17980&quot;&gt;#17980&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/806f70878e787f2c56aaa42a3e7adb61bc015278&quot;&gt;&lt;code&gt;806f708&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; edge cases with granular errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17970&quot;&gt;#17970&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/96307da837c407c9a1275124b65ca29c07ffd5e4&quot;&gt;&lt;code&gt;96307da&lt;/code&gt;&lt;/a&gt; docs: migration guide entry for &lt;a href=&quot;https://eslint.org/docs/rules/no-inner-declarations&quot;&gt;&lt;code&gt;no-inner-declarations&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17977&quot;&gt;#17977&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/40be60e0186cdde76219df4e8e628125df2912d8&quot;&gt;&lt;code&gt;40be60e&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d31c180312260d1a286cc8162907b6a33368edc9&quot;&gt;&lt;code&gt;d31c180&lt;/code&gt;&lt;/a&gt; docs: fix number of code-path events on custom rules page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17969&quot;&gt;#17969&lt;/a&gt;) (Richard Hunter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1529ab288ec815b2690864e04dd6d0a1f0b537c6&quot;&gt;&lt;code&gt;1529ab2&lt;/code&gt;&lt;/a&gt; docs: reorder entries in v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17967&quot;&gt;#17967&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95075251fb3ce35aaf7eadbd1d0a737106c13ec6&quot;&gt;&lt;code&gt;9507525&lt;/code&gt;&lt;/a&gt; docs: Explain how to combine configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17947&quot;&gt;#17947&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c785769fd177176966de7f6c1153480f7405000&quot;&gt;&lt;code&gt;7c78576&lt;/code&gt;&lt;/a&gt; docs: Add more removed &lt;code&gt;context&lt;/code&gt; methods to migrate to v9 guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17951&quot;&gt;#17951&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a877d68d0151679f8bf1cabc39746778754b3dd&quot;&gt;&lt;code&gt;3a877d6&lt;/code&gt;&lt;/a&gt; docs: Update removed CLI flags migration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17939&quot;&gt;#17939&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4a9cd1ea1cd0c115b98d07d1b6018ca918a9c73f&quot;&gt;&lt;code&gt;4a9cd1e&lt;/code&gt;&lt;/a&gt; docs: Update Linter API for v9 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17937&quot;&gt;#17937&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2a8eea8e5847f4103d90d667a2b08edf9795545f&quot;&gt;&lt;code&gt;2a8eea8&lt;/code&gt;&lt;/a&gt; docs: update docs for v9.0.0-alpha.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17929&quot;&gt;#17929&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2bf27def29ef1ca7f5bfe20c1306bf78087ea29&quot;&gt;&lt;code&gt;c2bf27d&lt;/code&gt;&lt;/a&gt; build: update docs files when publishing prereleases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17940&quot;&gt;#17940&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5e50ee65cf22871770b1d4d438b9056c577f646&quot;&gt;&lt;code&gt;c5e50ee&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1bf2520c4166aa55596417bf44c567555bc65fba&quot;&gt;&lt;code&gt;1bf2520&lt;/code&gt;&lt;/a&gt; chore: Split Docs CI from core CI (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17897&quot;&gt;#17897&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/320787e661beb979cf063d0f8333654f94ef9efd&quot;&gt;&lt;code&gt;320787e&lt;/code&gt;&lt;/a&gt; chore: delete relative-module-resolver.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17981&quot;&gt;#17981&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4926f33b96faf07a64aceec5f1f4882f4faaf4b5&quot;&gt;&lt;code&gt;4926f33&lt;/code&gt;&lt;/a&gt; refactor: use &lt;code&gt;Object.hasOwn()&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17948&quot;&gt;#17948&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df200e147705eb62f94b99c170554327259c65d4&quot;&gt;&lt;code&gt;df200e1&lt;/code&gt;&lt;/a&gt; refactor: use &lt;code&gt;Array.prototype.at()&lt;/code&gt; to get last elements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17949&quot;&gt;#17949&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/750b8dff6df02a500e12cb78390fd14814c82e5b&quot;&gt;&lt;code&gt;750b8df&lt;/code&gt;&lt;/a&gt; chore: update dependency glob to v10 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17917&quot;&gt;#17917&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74794f53a6bc88b67653c737f858cfdf35b1c73d&quot;&gt;&lt;code&gt;74794f5&lt;/code&gt;&lt;/a&gt; chore: removed unused eslintrc modules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17938&quot;&gt;#17938&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10ed29c0c4505dbac3bb05b0e3d61f329b99f747&quot;&gt;&lt;code&gt;10ed29c&lt;/code&gt;&lt;/a&gt; chore: remove unused dependency rimraf (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17934&quot;&gt;#17934&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/903ee60ea910aee344df7edb66874f80e4b6ed31&quot;&gt;&lt;code&gt;903ee60&lt;/code&gt;&lt;/a&gt; ci: use &lt;code&gt;--force&lt;/code&gt; flag when installing eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17921&quot;&gt;#17921&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v9.0.0-alpha.0 released</title>
    <link href="https://eslint.org/blog/2023/12/eslint-v9.0.0-alpha.0-released/"/>
    <updated>2023-12-29T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/12/eslint-v9.0.0-alpha.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;GitHub repo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Most of the highlights of this release are breaking changes, and are discussed further in the &lt;a href=&quot;https://eslint.org/docs/next/use/migrate-to-9.0.0&quot;&gt;migration guide&lt;/a&gt;. There are summaries of the significant changes below. (Less significant changes are included in the migration guide.)&lt;/p&gt;
&lt;p&gt;This prerelease version of ESLint has a &lt;a href=&quot;https://eslint.org/docs/next/&quot;&gt;separate documentation section&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;node.js-%3C-v18.18.0%2C-v19-no-longer-supported&quot; tabindex=&quot;-1&quot;&gt;Node.js &amp;lt; v18.18.0, v19 no longer supported&lt;/h3&gt;
&lt;p&gt;As of this post, Node.js v20.x is the LTS release, and as such we are &lt;a href=&quot;https://github.com/eslint/eslint/issues/17595&quot;&gt;dropping support&lt;/a&gt; for all versions of Node.js prior to v18.18.0 as well as v19.x.&lt;/p&gt;
&lt;h3 id=&quot;flat-config-is-now-the-default-and-has-some-changes&quot; tabindex=&quot;-1&quot;&gt;Flat config is now the default and has some changes&lt;/h3&gt;
&lt;p&gt;Flat config is now the default configuration format for ESLint and eslintrc is officially deprecated. To continue using a eslintrc configuration file, you’ll need to set the &lt;code&gt;ESLINT_USE_FLAT_CONFIG&lt;/code&gt; environment variable to &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This release introduces support for &lt;code&gt;eslint.config.mjs&lt;/code&gt; and &lt;code&gt;eslint.config.cjs&lt;/code&gt; in addition to &lt;code&gt;eslint.config.js&lt;/code&gt;, making it easier to use the module format you’d prefer regardless of the module format of the containing package.&lt;/p&gt;
&lt;p&gt;This change affects users, plugin developers, and integrators as many aspects of ESLint had to change to make this happen. Please see &lt;a href=&quot;https://eslint.org/blog/2023/10/flat-config-rollout-plans/&quot;&gt;our previous blog post&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h3 id=&quot;removed-all-formatters-except-stylish%2C-html%2C-json%2C-and-json-with-meta&quot; tabindex=&quot;-1&quot;&gt;Removed all formatters except &lt;code&gt;stylish&lt;/code&gt;, &lt;code&gt;html&lt;/code&gt;, &lt;code&gt;json&lt;/code&gt;, and &lt;code&gt;json-with-meta&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The following formatters have been removed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;checkstyle&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;compact&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jslint-xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;junit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tap&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unix&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;visualstudio&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are using these formatters currently, you’ll need to install the &lt;a href=&quot;https://github.com/fregante/eslint-formatters&quot;&gt;standalone packages&lt;/a&gt; for use with ESLint v9.0.0.&lt;/p&gt;
&lt;h3 id=&quot;removed-valid-jsdoc-and-require-jsdoc-rules&quot; tabindex=&quot;-1&quot;&gt;Removed &lt;code&gt;valid-jsdoc&lt;/code&gt; and &lt;code&gt;require-jsdoc&lt;/code&gt; rules&lt;/h3&gt;
&lt;p&gt;We have removed &lt;a href=&quot;https://github.com/eslint/eslint/issues/15820&quot;&gt;&lt;code&gt;valid-jsdoc&lt;/code&gt; and &lt;code&gt;require-jsdoc&lt;/code&gt;&lt;/a&gt;. We recommend using the &lt;a href=&quot;https://github.com/gajus/eslint-plugin-jsdoc&quot;&gt;&lt;code&gt;eslint-plugin-jsdoc&lt;/code&gt;&lt;/a&gt; plugin instead.&lt;/p&gt;
&lt;h3 id=&quot;removed-deprecated-methods-on-context-and-sourcecode&quot; tabindex=&quot;-1&quot;&gt;Removed deprecated methods on &lt;code&gt;context&lt;/code&gt; and &lt;code&gt;SourceCode&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;As we &lt;a href=&quot;https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/&quot;&gt;announced in September&lt;/a&gt;, we have removed a lot of deprecated methods from &lt;code&gt;context&lt;/code&gt; and replaced them with methods on &lt;code&gt;SourceCode&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;updating-eslint%3Arecommended&quot; tabindex=&quot;-1&quot;&gt;Updating &lt;code&gt;eslint:recommended&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;eslint:recommended&lt;/code&gt; configuration is updated to include new rules that we feel are important, and to remove deprecated and less important rules.&lt;/p&gt;
&lt;h3 id=&quot;changes-to-how-you-write-rules&quot; tabindex=&quot;-1&quot;&gt;Changes to how you write rules&lt;/h3&gt;
&lt;p&gt;We’ve made multiple changes to help prevent errors in rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Function-style rules will stop working in v9.0.0. Function-style rules are rules created by exporting a function from a file rather than exporting an object with a &lt;code&gt;create()&lt;/code&gt; method.&lt;/li&gt;
&lt;li&gt;When a rule doesn’t have &lt;code&gt;meta.schema&lt;/code&gt; specified, a default schema of &lt;code&gt;[]&lt;/code&gt; will be applied. This means that rules without a schema will be assumed to have no options, which in turn means that validation will fail if options are provided.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RuleTester&lt;/code&gt; now strictly checks that suggestion messages are unique for the same lint problem and ensures that suggestions generate valid syntax.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;--quiet-option-is-more-performant&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;--quiet&lt;/code&gt; option is more performant&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;--quiet&lt;/code&gt; option hides all warnings in the ESLint console. In v9.0.0, we are making a performance improvement by also not executing any rules set to &lt;code&gt;&amp;quot;warn&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;running-eslint-with-no-file-arguments&quot; tabindex=&quot;-1&quot;&gt;Running &lt;code&gt;eslint&lt;/code&gt; with no file arguments&lt;/h3&gt;
&lt;p&gt;If you are using flat config and you don’t pass any file arguments to the CLI, the CLI will &lt;a href=&quot;https://github.com/eslint/eslint/issues/14308&quot;&gt;default to linting the current directory&lt;/a&gt;, which means you can type &lt;code&gt;npx eslint&lt;/code&gt; and it will just work. (Doing the same with an eslintrc config file will result in an error.)&lt;/p&gt;
&lt;h3 id=&quot;unused-disable-directives-cause-warnings-by-default&quot; tabindex=&quot;-1&quot;&gt;Unused disable directives cause warnings by default&lt;/h3&gt;
&lt;p&gt;ESLint has long been able to flag unused disable directives. In this release, we’ve enabled warnings for unused disable directives by default. You can modify this value in your config file with &lt;code&gt;linterOptions.reportUnusedDisableDirectives&lt;/code&gt; or on the command line using &lt;code&gt;--report-unused-disable-directives-severity&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@9.0.0-alpha.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/946ae00457265eb298eb169d6d48ca7ec71b9eef&quot;&gt;&lt;code&gt;946ae00&lt;/code&gt;&lt;/a&gt; feat!: FlatRuleTester -&amp;gt; RuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17922&quot;&gt;#17922&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/baff28ce8f167f564471f1d70d6e9c4b0cb1a508&quot;&gt;&lt;code&gt;baff28c&lt;/code&gt;&lt;/a&gt; feat!: remove &lt;a href=&quot;https://eslint.org/docs/rules/no-inner-declarations&quot;&gt;&lt;code&gt;no-inner-declarations&lt;/code&gt;&lt;/a&gt; from &lt;code&gt;eslint:recommended&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17920&quot;&gt;#17920&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cadfbcd468737fc9447243edd1d15058efb6d3d8&quot;&gt;&lt;code&gt;cadfbcd&lt;/code&gt;&lt;/a&gt; feat!: Rename FlatESLint to ESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17914&quot;&gt;#17914&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d1018fc5e59db0495aa4a7f501c9d3f831981f35&quot;&gt;&lt;code&gt;d1018fc&lt;/code&gt;&lt;/a&gt; feat!: skip running warnings in --quiet mode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17274&quot;&gt;#17274&lt;/a&gt;) (Maddy Miller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb81b1cb78d2692a87fd3591fdc0f96b0c95e760&quot;&gt;&lt;code&gt;fb81b1c&lt;/code&gt;&lt;/a&gt; feat!: Set default &lt;code&gt;schema: []&lt;/code&gt;, drop support for function-style rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17792&quot;&gt;#17792&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b21e1fd67d94f907d007a7a9707a3ae1cc08575&quot;&gt;&lt;code&gt;0b21e1f&lt;/code&gt;&lt;/a&gt; feat!: add two more cases to &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;&lt;code&gt;no-implicit-coercion&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17832&quot;&gt;#17832&lt;/a&gt;) (Gürgün Dayıoğlu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2916c63046603e0cdc578d3c2eef8fca5b2e8847&quot;&gt;&lt;code&gt;2916c63&lt;/code&gt;&lt;/a&gt; feat!: Switch Linter to flat config by default (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17851&quot;&gt;#17851&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/200518eb6d42de4c3b0c6ef190fc09a95718297e&quot;&gt;&lt;code&gt;200518e&lt;/code&gt;&lt;/a&gt; fix!: Parsing ‘exported’ comment using parseListConfig (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17675&quot;&gt;#17675&lt;/a&gt;) (amondev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bdd6ba138645dba0442bb0ed2ee73049df56f38d&quot;&gt;&lt;code&gt;bdd6ba1&lt;/code&gt;&lt;/a&gt; feat!: Remove valid-jsdoc and require-jsdoc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17694&quot;&gt;#17694&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12be3071d014814149e8e6d602f5c192178ca771&quot;&gt;&lt;code&gt;12be307&lt;/code&gt;&lt;/a&gt; fix!: Behavior of CLI when no arguments are passed (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17644&quot;&gt;#17644&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8fe8c5626b98840d6a8580004f6ceffeff56264f&quot;&gt;&lt;code&gt;8fe8c56&lt;/code&gt;&lt;/a&gt; feat!: Update shouldUseFlatConfig and CLI so flat config is default (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17748&quot;&gt;#17748&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60dea3e3abd6c0b6aab25437b2d0501b0d30b70c&quot;&gt;&lt;code&gt;60dea3e&lt;/code&gt;&lt;/a&gt; feat!: deprecate &lt;a href=&quot;https://eslint.org/docs/rules/no-new-symbol&quot;&gt;no-new-symbol&lt;/a&gt;, recommend &lt;a href=&quot;https://eslint.org/docs/rules/no-new-native-nonconstructor&quot;&gt;no-new-native-nonconstructor&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17710&quot;&gt;#17710&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5aa9c499da48b2d3187270d5d8ece71ad7521f56&quot;&gt;&lt;code&gt;5aa9c49&lt;/code&gt;&lt;/a&gt; feat!: check for parsing errors in suggestion fixes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16639&quot;&gt;#16639&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3e0bb03cc814e78b06a1acc4e5347b4c90d72bf&quot;&gt;&lt;code&gt;b3e0bb0&lt;/code&gt;&lt;/a&gt; feat!: assert suggestion messages are unique in rule testers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17532&quot;&gt;#17532&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e563c52e35d25f726d423cc3b1dffcd80027fd99&quot;&gt;&lt;code&gt;e563c52&lt;/code&gt;&lt;/a&gt; feat!: &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;&lt;code&gt;no-invalid-regexp&lt;/code&gt;&lt;/a&gt; make allowConstructorFlags case-sensitive (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17533&quot;&gt;#17533&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5f02c70084c4f80900c0875b08f665e1f030af2&quot;&gt;&lt;code&gt;e5f02c7&lt;/code&gt;&lt;/a&gt; fix!: &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;no-sequences&lt;/a&gt; rule schema correction (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17878&quot;&gt;#17878&lt;/a&gt;) (MHO)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ee3e9eb5df7bdfdaa1746214793ed511112be76&quot;&gt;&lt;code&gt;6ee3e9e&lt;/code&gt;&lt;/a&gt; feat!: Update &lt;code&gt;eslint:recommended&lt;/code&gt; configuration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17716&quot;&gt;#17716&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2cf85a7447777e6b499cbb5c49de919bb5c817f&quot;&gt;&lt;code&gt;c2cf85a&lt;/code&gt;&lt;/a&gt; feat!: drop support for string configurations in flat config array (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17717&quot;&gt;#17717&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c314fd612587c42cfbe6acbe286629c4178be3f7&quot;&gt;&lt;code&gt;c314fd6&lt;/code&gt;&lt;/a&gt; feat!: Remove &lt;code&gt;SourceCode#getComments()&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17715&quot;&gt;#17715&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae78ff16558a1a2ca07b2b9cd294157d1bdcce2e&quot;&gt;&lt;code&gt;ae78ff1&lt;/code&gt;&lt;/a&gt; feat!: Remove deprecated context methods (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17698&quot;&gt;#17698&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f71c328e2786e2d73f168e43c7f96de172484a49&quot;&gt;&lt;code&gt;f71c328&lt;/code&gt;&lt;/a&gt; feat!: Swap FlatESLint-ESLint, FlatRuleTester-RuleTester in API (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17823&quot;&gt;#17823&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5304da03d94dc8cb19060e2efc9206784c4cec0e&quot;&gt;&lt;code&gt;5304da0&lt;/code&gt;&lt;/a&gt; feat!: remove formatters except html, json(-with-metadata), and stylish (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17531&quot;&gt;#17531&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1e827ffcbd73faa40dbac3b97529452e9c67108&quot;&gt;&lt;code&gt;e1e827f&lt;/code&gt;&lt;/a&gt; feat!: Require Node.js &lt;code&gt;^18.18.0 || ^20.9.0 || &amp;gt;=21.1.0&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17725&quot;&gt;#17725&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8792464ee7956af82dab582ca9ee59da596a608e&quot;&gt;&lt;code&gt;8792464&lt;/code&gt;&lt;/a&gt; feat: Enable eslint.config.mjs and eslint.config.cjs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17909&quot;&gt;#17909&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24ce9276d472b85541c4b01db488c789f33fd234&quot;&gt;&lt;code&gt;24ce927&lt;/code&gt;&lt;/a&gt; feat: warn by default for unused disable directives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17879&quot;&gt;#17879&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f182114144ae0bb7187de34a1661f31fb70f1357&quot;&gt;&lt;code&gt;f182114&lt;/code&gt;&lt;/a&gt; fix: deep merge behavior in flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17906&quot;&gt;#17906&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b577e8a55750c5e842074f62f1babb1836c4571c&quot;&gt;&lt;code&gt;b577e8a&lt;/code&gt;&lt;/a&gt; fix: allow circular references in config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17752&quot;&gt;#17752&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f0ba51bcef3e6fbf972ceb20403238f0e1f0ea9&quot;&gt;&lt;code&gt;7f0ba51&lt;/code&gt;&lt;/a&gt; docs: show &lt;code&gt;NEXT&lt;/code&gt; in version selectors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17911&quot;&gt;#17911&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a7911e09adf2aca4d93c81f4be1cd80db7dd735&quot;&gt;&lt;code&gt;0a7911e&lt;/code&gt;&lt;/a&gt; docs: add flat config default to v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17927&quot;&gt;#17927&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/94f80652aca302e2715ea51c10c3a1010786b751&quot;&gt;&lt;code&gt;94f8065&lt;/code&gt;&lt;/a&gt; docs: Add CLI updates to migrate to v9 guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17924&quot;&gt;#17924&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16187f23c6e5aaed3b50ff551a66f758893d5422&quot;&gt;&lt;code&gt;16187f2&lt;/code&gt;&lt;/a&gt; docs: Add exported and string config notes to migrate to v9 guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17926&quot;&gt;#17926&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ae50cc788c3cdd209e642573e3c831dd86fa0cd&quot;&gt;&lt;code&gt;3ae50cc&lt;/code&gt;&lt;/a&gt; docs: Add RuleTester changes to migrate to v9 guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17923&quot;&gt;#17923&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0831b58fe6fb5778c92aeb4cefa9ecedbbfbf48b&quot;&gt;&lt;code&gt;0831b58&lt;/code&gt;&lt;/a&gt; docs: add rule changes to v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17925&quot;&gt;#17925&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/037abfc21f264fca3a910c4a5cd23d1bf6826c3d&quot;&gt;&lt;code&gt;037abfc&lt;/code&gt;&lt;/a&gt; docs: update API docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17919&quot;&gt;#17919&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afc3c038ed3132a99659604624cc24e702eec45a&quot;&gt;&lt;code&gt;afc3c03&lt;/code&gt;&lt;/a&gt; docs: add function-style and &lt;code&gt;meta.schema&lt;/code&gt; changes to v9 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17912&quot;&gt;#17912&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1da0723695d080008b22f30c8b5c86fe386c6242&quot;&gt;&lt;code&gt;1da0723&lt;/code&gt;&lt;/a&gt; docs: update &lt;code&gt;eslint:recommended&lt;/code&gt; section in Migrate to v9.x (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17908&quot;&gt;#17908&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f55881f492d10e9c759e459ba6bade1be3dad84b&quot;&gt;&lt;code&gt;f55881f&lt;/code&gt;&lt;/a&gt; docs: remove configuration-files-new (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17907&quot;&gt;#17907&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/63ae191070569a9118b5972c90a98633b0a336e1&quot;&gt;&lt;code&gt;63ae191&lt;/code&gt;&lt;/a&gt; docs: Migrate to v9.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17905&quot;&gt;#17905&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e7084963c73f3cbaae5d569b4a2bee1509dd8cef&quot;&gt;&lt;code&gt;e708496&lt;/code&gt;&lt;/a&gt; docs: Switch to flat config by default (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17840&quot;&gt;#17840&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fdf0424c5c08c058479a6cd7676be6985e0f400f&quot;&gt;&lt;code&gt;fdf0424&lt;/code&gt;&lt;/a&gt; docs: Update Create a Plugin for flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17826&quot;&gt;#17826&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6a91bdf401e3b765f2b712e447154e4a2419fbc&quot;&gt;&lt;code&gt;e6a91bd&lt;/code&gt;&lt;/a&gt; docs: Switch shareable config docs to use flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17827&quot;&gt;#17827&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3831fb78daa3da296b71823f61f8e3a4556ff7d3&quot;&gt;&lt;code&gt;3831fb7&lt;/code&gt;&lt;/a&gt; docs: updated examples of &lt;a href=&quot;https://eslint.org/docs/rules/max-lines&quot;&gt;&lt;code&gt;max-lines&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17898&quot;&gt;#17898&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd1ac2041f48f2b6d743ebf671d0279a70de6eea&quot;&gt;&lt;code&gt;cd1ac20&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17fedc17e9e6e39ad986d917fb4e9e4835c50482&quot;&gt;&lt;code&gt;17fedc1&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@9.0.0-alpha.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17928&quot;&gt;#17928&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb89ef373fffbed991f4e099cb255a7c116889f9&quot;&gt;&lt;code&gt;cb89ef3&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6f4a45680039f720a2fccd5f445deaf45babb3d&quot;&gt;&lt;code&gt;f6f4a45&lt;/code&gt;&lt;/a&gt; chore: drop structuredClone polyfill for v9 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17915&quot;&gt;#17915&lt;/a&gt;) (Kevin Gibbons)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/412dcbb672b5a5859f96753afa7cb87291135a1b&quot;&gt;&lt;code&gt;412dcbb&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-plugin-n@16.6.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17916&quot;&gt;#17916&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02a8baf9f2ef7b309c7d45564a79ed5d2153057f&quot;&gt;&lt;code&gt;02a8baf&lt;/code&gt;&lt;/a&gt; chore: Rename files with underscores (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17910&quot;&gt;#17910&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c0f5d913b0f07de332dfcecf6052f1e64bf3d2fb&quot;&gt;&lt;code&gt;c0f5d91&lt;/code&gt;&lt;/a&gt; chore: remove creating an unused instance of Linter in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17902&quot;&gt;#17902&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3826cdf89294d079be037a9ab30b7506077b26ac&quot;&gt;&lt;code&gt;3826cdf&lt;/code&gt;&lt;/a&gt; chore: use jsdoc/no-multi-asterisks with allowWhitespace: true (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17900&quot;&gt;#17900&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9a17b3f1cb6b6c609bda86a618ac5ff631285d2&quot;&gt;&lt;code&gt;a9a17b3&lt;/code&gt;&lt;/a&gt; chore: fix getting scope in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17899&quot;&gt;#17899&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/595a1f689edb5250d8398af13c3e4bd19d284d92&quot;&gt;&lt;code&gt;595a1f6&lt;/code&gt;&lt;/a&gt; test: ensure that CLI tests run with FlatESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17884&quot;&gt;#17884&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c7eca43202be98f6ff253b46c9a38602eeb92ea0&quot;&gt;&lt;code&gt;c7eca43&lt;/code&gt;&lt;/a&gt; chore: update dependency markdownlint-cli to ^0.38.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17865&quot;&gt;#17865&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc0c9f707aa9da7965b98151868b3c249c7f8f30&quot;&gt;&lt;code&gt;cc0c9f7&lt;/code&gt;&lt;/a&gt; ci: bump github/codeql-action from 2 to 3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17873&quot;&gt;#17873&lt;/a&gt;) (dependabot[bot])&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.56.0 released</title>
    <link href="https://eslint.org/blog/2023/12/eslint-v8.56.0-released/"/>
    <updated>2023-12-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/12/eslint-v8.56.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;new-features-for-reporting-unused-disable-directives&quot; tabindex=&quot;-1&quot;&gt;New features for reporting unused disable directives&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The ESLint CLI has a new option &lt;a href=&quot;https://eslint.org/docs/latest/use/command-line-interface#--report-unused-disable-directives-severity&quot;&gt;&lt;code&gt;--report-unused-disable-directives-severity&lt;/code&gt;&lt;/a&gt;. This option is available in both eslintrc and flat config modes.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files-new#reporting-unused-disable-directives&quot;&gt;&lt;code&gt;linterOptions.reportUnusedDisableDirectives&lt;/code&gt;&lt;/a&gt; configuration option can now be set to a severity value: &lt;code&gt;&amp;quot;error&amp;quot;&lt;/code&gt; (or &lt;code&gt;2&lt;/code&gt;), &lt;code&gt;&amp;quot;warn&amp;quot;&lt;/code&gt; (or &lt;code&gt;1&lt;/code&gt;), &lt;code&gt;&amp;quot;off&amp;quot;&lt;/code&gt; (or &lt;code&gt;0&lt;/code&gt;). This feature is available only in flat config files (&lt;code&gt;eslint.config.js&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0dd9704c4751e1cd02039f7d6485fee09bbccbf6&quot;&gt;&lt;code&gt;0dd9704&lt;/code&gt;&lt;/a&gt; feat: Support custom severity when reporting unused disable directives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17212&quot;&gt;#17212&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/31a7e3fde491e36496b54e8905c766b31162d776&quot;&gt;&lt;code&gt;31a7e3f&lt;/code&gt;&lt;/a&gt; feat: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-properties&quot;&gt;no-restricted-properties&lt;/a&gt; false negatives with unknown objects (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17818&quot;&gt;#17818&lt;/a&gt;) (Arka Pratim Chaudhuri)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d5e5f68849ae80caec0fc96ecceebccd348deec&quot;&gt;&lt;code&gt;7d5e5f6&lt;/code&gt;&lt;/a&gt; fix: &lt;code&gt;TypeError: fs.exists is not a function&lt;/code&gt; on read-only file system (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17846&quot;&gt;#17846&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74739c849bbb6547b0e555ed8bb2ba1cbe0fdce4&quot;&gt;&lt;code&gt;74739c8&lt;/code&gt;&lt;/a&gt; fix: suggestion with invalid syntax in &lt;a href=&quot;https://eslint.org/docs/rules/no-promise-executor-return&quot;&gt;no-promise-executor-return&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17812&quot;&gt;#17812&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90077199fe519953f9af8664bf947db4e4958514&quot;&gt;&lt;code&gt;9007719&lt;/code&gt;&lt;/a&gt; docs: update link in ways-to-extend (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17839&quot;&gt;#17839&lt;/a&gt;) (Amel SELMANE)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a22236f8d10af8a5bcafe56092651d3d681c99d&quot;&gt;&lt;code&gt;3a22236&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54c3ca6f2dcd2a7afd53f42fc32055a25587259e&quot;&gt;&lt;code&gt;54c3ca6&lt;/code&gt;&lt;/a&gt; docs: fix migration-guide example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17829&quot;&gt;#17829&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4391b71e62b15e54b0493f0dce1ea053ebbc0689&quot;&gt;&lt;code&gt;4391b71&lt;/code&gt;&lt;/a&gt; docs: check config comments in rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17815&quot;&gt;#17815&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd2836342c2be4751b05fe0ba7cece17d1edecc8&quot;&gt;&lt;code&gt;fd28363&lt;/code&gt;&lt;/a&gt; docs: remove mention about ESLint stylistic rules in readme (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17810&quot;&gt;#17810&lt;/a&gt;) (Zwyx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/48ed5a6dad478a14d3e823f137455c523f373e0b&quot;&gt;&lt;code&gt;48ed5a6&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba6af85c7d8ba55d37f8663aee949d148e441c1a&quot;&gt;&lt;code&gt;ba6af85&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.56.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17864&quot;&gt;#17864&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60a531a9c0811ddf718e26b9136e133f580b6c36&quot;&gt;&lt;code&gt;60a531a&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba87a0651a65b52c3ac442b512dd9f4c2b4c5f57&quot;&gt;&lt;code&gt;ba87a06&lt;/code&gt;&lt;/a&gt; chore: update dependency markdownlint to ^0.32.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17783&quot;&gt;#17783&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9271d10d9eabeafb0129a090f29191bfd14273c0&quot;&gt;&lt;code&gt;9271d10&lt;/code&gt;&lt;/a&gt; chore: add GitHub issue template for docs issues (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17845&quot;&gt;#17845&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/70a686b3c1feac5eca98bbff9bd67175f550d5db&quot;&gt;&lt;code&gt;70a686b&lt;/code&gt;&lt;/a&gt; chore: Convert rule tests to FlatRuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17819&quot;&gt;#17819&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f3a599d34c7080fc0b2c9a60b5e54dc98c22867c&quot;&gt;&lt;code&gt;f3a599d&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-plugin-unicorn to v49.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17837&quot;&gt;#17837&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/905d4b75ab2df42aba30622cee0f66b511397e2c&quot;&gt;&lt;code&gt;905d4b7&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-plugin-eslint-plugin v5.2.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17838&quot;&gt;#17838&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d7c3ce246e6b499f472342ef59496a47cc033d6&quot;&gt;&lt;code&gt;4d7c3ce&lt;/code&gt;&lt;/a&gt; chore: update eslint-plugin-n v16.4.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17836&quot;&gt;#17836&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd0c60c3be1f213e5a6d69d8a3248e963619e155&quot;&gt;&lt;code&gt;fd0c60c&lt;/code&gt;&lt;/a&gt; ci: unpin Node.js 21.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17821&quot;&gt;#17821&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.55.0 released</title>
    <link href="https://eslint.org/blog/2023/12/eslint-v8.55.0-released/"/>
    <updated>2023-12-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/12/eslint-v8.55.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; rule has a new option &lt;code&gt;importNamePattern&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c9e6c100a6eb69da292463293b3b48cff911a01&quot;&gt;&lt;code&gt;8c9e6c1&lt;/code&gt;&lt;/a&gt; feat: importNamePattern option in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17721&quot;&gt;#17721&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/83ece2afc2dc6c49efe82678663fe4cba590c0e5&quot;&gt;&lt;code&gt;83ece2a&lt;/code&gt;&lt;/a&gt; docs: fix typo &lt;code&gt;--rules&lt;/code&gt; -&amp;gt; &lt;code&gt;--rule&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17806&quot;&gt;#17806&lt;/a&gt;) (OKURA Masafumi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fffca5c362bcd205dbf79d1bb52834f8a98fc6bd&quot;&gt;&lt;code&gt;fffca5c&lt;/code&gt;&lt;/a&gt; docs: remove “Open in Playground” buttons for removed rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17791&quot;&gt;#17791&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a6d9442a9ab34d5d19f78d8c8fd0767a1237bfe3&quot;&gt;&lt;code&gt;a6d9442&lt;/code&gt;&lt;/a&gt; docs: fix correct/incorrect examples of rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17789&quot;&gt;#17789&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/383e99928d7ce649ec9030c9856b03fbac0c3501&quot;&gt;&lt;code&gt;383e999&lt;/code&gt;&lt;/a&gt; docs: update and fix examples for &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17788&quot;&gt;#17788&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a8efd5b7ad13eb320a1f468d1d4ab3c8ab99214&quot;&gt;&lt;code&gt;5a8efd5&lt;/code&gt;&lt;/a&gt; docs: add specific stylistic rule for each deprecated rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17778&quot;&gt;#17778&lt;/a&gt;) (Etienne)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb8950c3b811c9163b9aae23af8b6266ad98b295&quot;&gt;&lt;code&gt;eb8950c&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.55.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17811&quot;&gt;#17811&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/93df3849a7a25ebe0502000bf0bfb80a6613a5ae&quot;&gt;&lt;code&gt;93df384&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe4b9545a83e9aca7ba4bb77bc9c868d57de777f&quot;&gt;&lt;code&gt;fe4b954&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@2.1.4 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17799&quot;&gt;#17799&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bd8911db85c7a1127543c9212c8cea47a5cb687d&quot;&gt;&lt;code&gt;bd8911d&lt;/code&gt;&lt;/a&gt; ci: pin Node.js 21.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17809&quot;&gt;#17809&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b29a16b22f234f6134475efb6c7be5ac946556ee&quot;&gt;&lt;code&gt;b29a16b&lt;/code&gt;&lt;/a&gt; chore: fix several &lt;code&gt;cli&lt;/code&gt; tests to run in the intended flat config mode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17797&quot;&gt;#17797&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de165c108203c6703516ac651f5b4cac5b241804&quot;&gt;&lt;code&gt;de165c1&lt;/code&gt;&lt;/a&gt; chore: remove unused config-extends fixtures (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17781&quot;&gt;#17781&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d4304b8b66eac870ffbf4840d84add8a123b25fc&quot;&gt;&lt;code&gt;d4304b8&lt;/code&gt;&lt;/a&gt; chore: remove formatting/stylistic rules from new rule templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17780&quot;&gt;#17780&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21024fe2029420b413bed11d23761c87e9a02a1a&quot;&gt;&lt;code&gt;21024fe&lt;/code&gt;&lt;/a&gt; chore: check rule examples for syntax errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17718&quot;&gt;#17718&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.54.0 released</title>
    <link href="https://eslint.org/blog/2023/11/eslint-v8.54.0-released/"/>
    <updated>2023-11-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/11/eslint-v8.54.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-console&quot;&gt;no-console&lt;/a&gt; rule now provides &lt;a href=&quot;https://eslint.org/docs/latest/use/core-concepts#rule-suggestions&quot;&gt;suggestions&lt;/a&gt; for some of the problems reported by this rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7a883bd6ba4f140b60cbbb2be5b53d750f6c8db&quot;&gt;&lt;code&gt;a7a883b&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/for-direction&quot;&gt;for-direction&lt;/a&gt; rule add check for condition in reverse order (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17755&quot;&gt;#17755&lt;/a&gt;) (Angelo Annunziata)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1452dc9f12c45c05d7c569f737221f0d988ecef1&quot;&gt;&lt;code&gt;1452dc9&lt;/code&gt;&lt;/a&gt; feat: Add suggestions to &lt;a href=&quot;https://eslint.org/docs/rules/no-console&quot;&gt;no-console&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17680&quot;&gt;#17680&lt;/a&gt;) (Joel Mathew Koshy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21ebf8a811be9f4b009cf70a10be5062d4fdc736&quot;&gt;&lt;code&gt;21ebf8a&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/no-array-constructor&quot;&gt;&lt;code&gt;no-array-constructor&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17711&quot;&gt;#17711&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/98926e6e7323e5dd12a9f016cb558144296665af&quot;&gt;&lt;code&gt;98926e6&lt;/code&gt;&lt;/a&gt; fix: Ensure that extra data is not accidentally stored in the cache file (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17760&quot;&gt;#17760&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e8cf9f6a524332293f8b2c90a2db4a532e47d919&quot;&gt;&lt;code&gt;e8cf9f6&lt;/code&gt;&lt;/a&gt; fix: Make dark scroll bar in dark theme (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17753&quot;&gt;#17753&lt;/a&gt;) (Pavel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3cbeaad7b943c153937ce34365cec2c406f2b98b&quot;&gt;&lt;code&gt;3cbeaad&lt;/code&gt;&lt;/a&gt; fix: Use &lt;code&gt;cwd&lt;/code&gt; constructor option as config &lt;code&gt;basePath&lt;/code&gt; in Linter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17705&quot;&gt;#17705&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/becfdd39b25d795e56c9a13eb3e77af6b9c86e8a&quot;&gt;&lt;code&gt;becfdd3&lt;/code&gt;&lt;/a&gt; docs: Make clear when rules are removed (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17728&quot;&gt;#17728&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05d6e99153ed6d94eb30f46c57609371918a41f3&quot;&gt;&lt;code&gt;05d6e99&lt;/code&gt;&lt;/a&gt; docs: update “Submit a Pull Request” page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17712&quot;&gt;#17712&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb2279e5148cee8fdea7dae614f4f8af7a2d06c3&quot;&gt;&lt;code&gt;eb2279e&lt;/code&gt;&lt;/a&gt; docs: display info about deprecated rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17749&quot;&gt;#17749&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d24532601e64714ac5d08507e05aa5c14ecd1d5a&quot;&gt;&lt;code&gt;d245326&lt;/code&gt;&lt;/a&gt; docs: Correct working in migrating plugin docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17722&quot;&gt;#17722&lt;/a&gt;) (Filip Tammergård)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d644de9a4b593b565617303a095bc9aa69e7b768&quot;&gt;&lt;code&gt;d644de9&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.54.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17773&quot;&gt;#17773&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e6e31415cc429a3a9fc64b2ec03df0e0ec0c91b&quot;&gt;&lt;code&gt;1e6e314&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6fb8805310afe7476d6c404f172177a6d15fcf11&quot;&gt;&lt;code&gt;6fb8805&lt;/code&gt;&lt;/a&gt; chore: Fixed grammar in issue_templates/rule_change (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17770&quot;&gt;#17770&lt;/a&gt;) (Joel Mathew Koshy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85db7243ddb8706ed60ab64a7ddf604d0d7de493&quot;&gt;&lt;code&gt;85db724&lt;/code&gt;&lt;/a&gt; chore: upgrade &lt;code&gt;markdownlint&lt;/code&gt; to 0.31.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17754&quot;&gt;#17754&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d470d2e74535761bd56dcb1c021b463ef9e8a9c&quot;&gt;&lt;code&gt;6d470d2&lt;/code&gt;&lt;/a&gt; chore: update dependency recast to ^0.23.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17736&quot;&gt;#17736&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7121b590d578c9c9b38ee481313317f30e54817&quot;&gt;&lt;code&gt;b7121b5&lt;/code&gt;&lt;/a&gt; chore: update dependency markdownlint-cli to ^0.37.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17735&quot;&gt;#17735&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/633b9a19752b6a22ab4d6c824f27a75ac0e4151b&quot;&gt;&lt;code&gt;633b9a1&lt;/code&gt;&lt;/a&gt; chore: update dependency regenerator-runtime to ^0.14.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17739&quot;&gt;#17739&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acac16fdf8540f7ba86cf637e3c1b253bd35a268&quot;&gt;&lt;code&gt;acac16f&lt;/code&gt;&lt;/a&gt; chore: update dependency vite-plugin-commonjs to ^0.10.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17740&quot;&gt;#17740&lt;/a&gt;) (renovate[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba8ca7e3debcba68ee7015b9221cf5acd7870206&quot;&gt;&lt;code&gt;ba8ca7e&lt;/code&gt;&lt;/a&gt; chore: add .github/renovate.json5 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17567&quot;&gt;#17567&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>What&#39;s coming in ESLint v9.0.0</title>
    <link href="https://eslint.org/blog/2023/11/whats-coming-in-eslint-9.0.0/"/>
    <updated>2023-11-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/11/whats-coming-in-eslint-9.0.0/</id>
    <content type="html">&lt;p&gt;Last month, the Technical Steering Committee (TSC) met to finalize the features for ESLint v9.0.0. This post outlines our plans for v9.0.0. You can keep up to date everything that is planned for v9.0.0 on our &lt;a href=&quot;https://github.com/orgs/eslint/projects/4&quot;&gt;project board&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;development-plan&quot; tabindex=&quot;-1&quot;&gt;Development plan&lt;/h2&gt;
&lt;p&gt;Due to the large number of breaking changes planned for v9.0.0, we have decided to develop this release in two phases:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Alpha.&lt;/strong&gt; The alpha release will be comprised primarily of the changes we believe will cause the most disruption for existing users. Getting these changes into a release early will allow us to gather feedback to ensure things are going as planned.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Beta.&lt;/strong&gt; The beta release will be comprised of the remaining tasks and smaller breaking changes that will have fewer impacted users.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The specific details about each phase are listed below in this post. Note that if tasks scheduled for the beta are completed in the alpha timeframe, then they will be published in the alpha release.&lt;/p&gt;
&lt;p&gt;After the beta has been validated, we will publish one or more release candidates as we continue to fix bugs and deal with compatibility issues.&lt;/p&gt;
&lt;h2 id=&quot;significant-changes-in-v9.0.0-alpha&quot; tabindex=&quot;-1&quot;&gt;Significant changes in v9.0.0-alpha&lt;/h2&gt;
&lt;p&gt;The following changes are planned for the alpha release and represent significant breaking changes.&lt;/p&gt;
&lt;h3 id=&quot;flat-config-now-the-default-and-has-some-changes&quot; tabindex=&quot;-1&quot;&gt;Flat config now the default and has some changes&lt;/h3&gt;
&lt;p&gt;Flat config will be the default configuration format for ESLint beginning in v9.0.0 and eslintrc will be deprecated but will still work. To continue using a eslintrc configuration file, you’ll need to set the &lt;code&gt;ESLINT_USE_FLAT_CONFIG&lt;/code&gt; environment variable to &lt;code&gt;false&lt;/code&gt;. We announced the details in &lt;a href=&quot;https://eslint.org/blog/2023/10/flat-config-rollout-plans/&quot;&gt;my previous blog post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We will also remove the &lt;code&gt;&amp;quot;eslint:recommended&amp;quot;&lt;/code&gt; and &lt;code&gt;&amp;quot;eslint:all&amp;quot;&lt;/code&gt; configuration strings from flat config. In the initial version of flat config, we let you put these directly into the config array, but in v9.0.0, you’ll need to use the corresponding configs from the &lt;a href=&quot;https://www.npmjs.com/package/@eslint/js&quot;&gt;&lt;code&gt;@eslint/js&lt;/code&gt; package&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;dropping-support-for-node.js-%3C-v18.18.0%2C-v19&quot; tabindex=&quot;-1&quot;&gt;Dropping support for Node.js &amp;lt; v18.18.0, v19&lt;/h3&gt;
&lt;p&gt;As of this post, Node.js v20.x is the LTS release, and as such we are &lt;a href=&quot;https://github.com/eslint/eslint/issues/17595&quot;&gt;dropping support&lt;/a&gt; for all versions of Node.js prior to v18.18.0 as well as v19.x.&lt;/p&gt;
&lt;h3 id=&quot;removing-all-formatters-except-stylish%2C-html%2C-json%2C-and-json-with-meta&quot; tabindex=&quot;-1&quot;&gt;Removing all formatters except &lt;code&gt;stylish&lt;/code&gt;, &lt;code&gt;html&lt;/code&gt;, &lt;code&gt;json&lt;/code&gt;, and &lt;code&gt;json-with-meta&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;In an ongoing effort to reduce the install size of ESLint, we have decided to &lt;a href=&quot;https://github.com/eslint/eslint/issues/17524&quot;&gt;remove most of the formatters&lt;/a&gt; from the core of ESLint. The formatters being removed are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;checkstyle&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;compact&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jslint-xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;junit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tap&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unix&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;visualstudio&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are using these formatters currently, you’ll need to install the &lt;a href=&quot;https://github.com/fregante/eslint-formatters&quot;&gt;standalone packages&lt;/a&gt; for use with ESLint v9.0.0.&lt;/p&gt;
&lt;h3 id=&quot;removing-valid-jsdoc-and-require-jsdoc-rules&quot; tabindex=&quot;-1&quot;&gt;Removing &lt;code&gt;valid-jsdoc&lt;/code&gt; and &lt;code&gt;require-jsdoc&lt;/code&gt; rules&lt;/h3&gt;
&lt;p&gt;Continuing with our theme of reducing ESLint’s install size, we have decided to &lt;a href=&quot;https://github.com/eslint/eslint/issues/15820&quot;&gt;remove the &lt;code&gt;valid-jsdoc&lt;/code&gt; and &lt;code&gt;require-jsdoc&lt;/code&gt; rules&lt;/a&gt;. These rules have been deprecated since ESLint v5.10.0 and removing them allows us to remove another dependency (&lt;code&gt;doctrine&lt;/code&gt;). We recommend using the &lt;a href=&quot;https://github.com/gajus/eslint-plugin-jsdoc&quot;&gt;&lt;code&gt;eslint-plugin-jsdoc&lt;/code&gt;&lt;/a&gt; plugin instead.&lt;/p&gt;
&lt;h3 id=&quot;removing-deprecated-methods-on-context-and-sourcecode&quot; tabindex=&quot;-1&quot;&gt;Removing deprecated methods on &lt;code&gt;context&lt;/code&gt; and &lt;code&gt;SourceCode&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;As we &lt;a href=&quot;https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/&quot;&gt;announced in September&lt;/a&gt;, we will be removing a lot of deprecated methods from &lt;code&gt;context&lt;/code&gt; and replacing them with methods on &lt;code&gt;SourceCode&lt;/code&gt;. Please read the above mentioned post for more details on these changes.&lt;/p&gt;
&lt;p&gt;Additionally, we will be &lt;a href=&quot;https://github.com/eslint/eslint/issues/14744&quot;&gt;removing the deprecated &lt;code&gt;SourceCode#getComments()&lt;/code&gt; method&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;updating-eslint%3Arecommended&quot; tabindex=&quot;-1&quot;&gt;Updating &lt;code&gt;eslint:recommended&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;eslint:recommended&lt;/code&gt; configuration will be &lt;a href=&quot;https://github.com/eslint/eslint/issues/17596&quot;&gt;updated&lt;/a&gt; to include new rules that we feel are important, and to remove deprecated rules.&lt;/p&gt;
&lt;h3 id=&quot;changes-to-how-you-write-rules&quot; tabindex=&quot;-1&quot;&gt;Changes to how you write rules&lt;/h3&gt;
&lt;p&gt;To clean up and make rules easier to work with, we’re making &lt;a href=&quot;https://github.com/eslint/eslint/issues/14709&quot;&gt;two changes&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Function-style rules will stop working in v9.0.0. Function-style rules are rules created by exporting a function from a file rather than exporting an object with a &lt;code&gt;create()&lt;/code&gt; method.&lt;/li&gt;
&lt;li&gt;When a rule doesn’t have &lt;code&gt;meta.schema&lt;/code&gt; specified, a default schema of &lt;code&gt;[]&lt;/code&gt; will be applied. This means that rules without a schema will be assumed to have no options, which in turn means that validation will fail if options are provided.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can read more about this change in the &lt;a href=&quot;https://github.com/eslint/rfcs/tree/main/designs/2021-schema-object-rules&quot;&gt;RFC&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;--quiet-option-is-more-performant&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;--quiet&lt;/code&gt; option is more performant&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;--quiet&lt;/code&gt; option hides all warnings in the ESLint console. In v9.0.0, we are making a performance improvement by also not executing any rules set to &lt;code&gt;&amp;quot;warn&amp;quot;&lt;/code&gt;. You can read more about this change in the &lt;a href=&quot;https://github.com/eslint/rfcs/tree/main/designs/2023-only-run-reporting-rules&quot;&gt;RFC&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;running-eslint-with-no-file-arguments&quot; tabindex=&quot;-1&quot;&gt;Running &lt;code&gt;eslint&lt;/code&gt; with no file arguments&lt;/h3&gt;
&lt;p&gt;Starting in v9.0.0, if you are using flat config and you don’t pass any file arguments to the CLI, the CLI will &lt;a href=&quot;https://github.com/eslint/eslint/issues/14308&quot;&gt;default to linting the current directory&lt;/a&gt;, which means you can type &lt;code&gt;npx eslint&lt;/code&gt; and it will just work.&lt;/p&gt;
&lt;p&gt;For eslintrc, missing file arguments will result in an error.&lt;/p&gt;
&lt;h2 id=&quot;significant-changes-in-v9.0.0-beta&quot; tabindex=&quot;-1&quot;&gt;Significant changes in v9.0.0-beta&lt;/h2&gt;
&lt;p&gt;The following changes are planned for the beta release and represent significant breaking changes.&lt;/p&gt;
&lt;h3 id=&quot;removing-codepath%23currentsegments&quot; tabindex=&quot;-1&quot;&gt;Removing &lt;code&gt;CodePath#currentSegments&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;In order to move forward with the &lt;a href=&quot;https://github.com/eslint/rfcs/tree/main/designs/2022-languages&quot;&gt;language plugins&lt;/a&gt; work, we’ll be removing &lt;code&gt;CodePath#currentSegments&lt;/code&gt;. This only affects rules that are using code path analysis. You can read more in the previous &lt;a href=&quot;https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/#codepath%23currentsegments&quot;&gt;blog post&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;configuration-comments-with-just-severity-now-only-override-severity&quot; tabindex=&quot;-1&quot;&gt;Configuration comments with just severity now only override severity&lt;/h3&gt;
&lt;p&gt;Due to a bug in the way inline configuration comments were handled, comments such as &lt;code&gt;/*eslint no-undef: warn */&lt;/code&gt; would automatically remove any options set for the corresponding rule in a configuration file. In v9.0.0, these types of comments will &lt;a href=&quot;https://github.com/eslint/eslint/issues/17381&quot;&gt;only change the severity of the rule&lt;/a&gt; and will not affect any other options.&lt;/p&gt;
&lt;h3 id=&quot;new-no-new-native-nonconstructor-rule-replaces-no-new-symbol&quot; tabindex=&quot;-1&quot;&gt;New &lt;code&gt;no-new-native-nonconstructor&lt;/code&gt; rule replaces &lt;code&gt;no-new-symbol&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;no-new-symbol&lt;/code&gt; rule was designed to prevent &lt;code&gt;new Symbol()&lt;/code&gt; in your code, which is an error because &lt;code&gt;Symbol&lt;/code&gt; isn’t a constructor. There are other global functions that also don’t have constructors, so we decided to &lt;a href=&quot;https://github.com/eslint/eslint/issues/17446&quot;&gt;create a new rule&lt;/a&gt;, &lt;code&gt;no-new-native-nonconstructor&lt;/code&gt;, to cover all of those cases. This new rule will be added to &lt;code&gt;eslint:recommended&lt;/code&gt; and &lt;code&gt;no-new-symbol&lt;/code&gt; will be deprecated.&lt;/p&gt;
&lt;h3 id=&quot;changes-to-ruletester&quot; tabindex=&quot;-1&quot;&gt;Changes to &lt;code&gt;RuleTester&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;RuleTester&lt;/code&gt; class will be updated to catch more problems with rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;There will be a failure if &lt;a href=&quot;https://github.com/eslint/eslint/issues/16908&quot;&gt;multiple suggestion fixers have the same message&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;There will be a failure if a &lt;a href=&quot;https://github.com/eslint/eslint/issues/15735&quot;&gt;suggestion contains a parsing error&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/rfcs/tree/main/designs/2021-stricter-rule-test-validation&quot;&gt;Several additional assertions&lt;/a&gt; will be added to catch invalid or buggy test cases.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;when-to-expect-eslint-v9.0.0&quot; tabindex=&quot;-1&quot;&gt;When to expect ESLint v9.0.0&lt;/h2&gt;
&lt;p&gt;We expect the first alpha release of ESLint v9.0.0 to be released in December or January, depending on the progress we make on our tasks. At that point, we will gather feedback from the community and fix any outstanding issues that make it difficult for people to upgrade. We hope to the beta release a couple of months after the alpha, and the final release a couple of months after that. Availability of all releases will be announced on this blog, on our &lt;a href=&quot;https://twitter.com/geteslint&quot;&gt;X account&lt;/a&gt;, and on our &lt;a href=&quot;https://fosstodon.org/@eslint&quot;&gt;Mastodon account&lt;/a&gt;, so please stay tuned!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.53.0 released</title>
    <link href="https://eslint.org/blog/2023/11/eslint-v8.53.0-released/"/>
    <updated>2023-11-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/11/eslint-v8.53.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Core formatting rules have been deprecated. Please see &lt;a href=&quot;https://eslint.org/blog/2023/10/deprecating-formatting-rules/&quot;&gt;Deprecation of formatting rules&lt;/a&gt; blog post for more details.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/528e1c00dc2aa8636e5b706c4270dc655cfa17e3&quot;&gt;&lt;code&gt;528e1c0&lt;/code&gt;&lt;/a&gt; feat: Deprecate formatting rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17696&quot;&gt;#17696&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c0b11ddb9f8aacc64c3933b9f278939aa7bea481&quot;&gt;&lt;code&gt;c0b11dd&lt;/code&gt;&lt;/a&gt; feat: Add suggestions for &lt;a href=&quot;https://eslint.org/docs/rules/no-prototype-builtins&quot;&gt;no-prototype-builtins&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17677&quot;&gt;#17677&lt;/a&gt;) (Yonathan Randolph)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ad6257744d63281235fcc33288394b1d69b34ce&quot;&gt;&lt;code&gt;1ad6257&lt;/code&gt;&lt;/a&gt; fix: ensure that exit code for fatal errors is not overwritten (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17683&quot;&gt;#17683&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b329ea748dff45f11c7e218208244dc24fcb5c8f&quot;&gt;&lt;code&gt;b329ea7&lt;/code&gt;&lt;/a&gt; fix: add &lt;code&gt;;&lt;/code&gt; after JSX nodes in  &lt;a href=&quot;https://eslint.org/docs/rules/no-object-constructor&quot;&gt;&lt;code&gt;no-object-constructor&lt;/code&gt;&lt;/a&gt; autofix (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17672&quot;&gt;#17672&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab8c60d4f859cec787b5a12f7271b40e666235f5&quot;&gt;&lt;code&gt;ab8c60d&lt;/code&gt;&lt;/a&gt; docs: change position of return to top button (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17688&quot;&gt;#17688&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fc44c0b8c5dca466bffdfe01dfd80794d7762b7&quot;&gt;&lt;code&gt;4fc44c0&lt;/code&gt;&lt;/a&gt; docs: update twitter icon to new X icon (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17687&quot;&gt;#17687&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4164b2ceec89726b18ea0b0e34fab05735d55a09&quot;&gt;&lt;code&gt;4164b2c&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8651895ca7ae15e13d74c8be67d9eebd63a7ce1f&quot;&gt;&lt;code&gt;8651895&lt;/code&gt;&lt;/a&gt; docs: Fix tabs in rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17653&quot;&gt;#17653&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3aec1c55ba2c6d2833e1c0afe0a58f0cc6bbc0a4&quot;&gt;&lt;code&gt;3aec1c5&lt;/code&gt;&lt;/a&gt; docs: explained rule fixers and suggestions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17657&quot;&gt;#17657&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba4d4d567a82554250dd8c7933322824e6a73944&quot;&gt;&lt;code&gt;ba4d4d5&lt;/code&gt;&lt;/a&gt; chore: remove metascraper (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17707&quot;&gt;#17707&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d0733882944b4849d71a40723c251213698cef9&quot;&gt;&lt;code&gt;0d07338&lt;/code&gt;&lt;/a&gt; chore: Update dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17706&quot;&gt;#17706&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/93256a32e312f3f4e5c532762df71bdc06bded20&quot;&gt;&lt;code&gt;93256a3&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/485ec7d08ed2040c292f52bf9b9152f6c8ef4809&quot;&gt;&lt;code&gt;485ec7d&lt;/code&gt;&lt;/a&gt; test: fix ESLint tests for caching (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17699&quot;&gt;#17699&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db06a7ff7992a74368f03d1f21beb00df0407021&quot;&gt;&lt;code&gt;db06a7f&lt;/code&gt;&lt;/a&gt; ci: bump actions/setup-node from 3 to 4 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17676&quot;&gt;#17676&lt;/a&gt;) (dependabot[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/994596b07f5ff20a615a4be1ea03e5fd59cdb84b&quot;&gt;&lt;code&gt;994596b&lt;/code&gt;&lt;/a&gt; ci: run tests in Node.js 21 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17673&quot;&gt;#17673&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Deprecation of formatting rules</title>
    <link href="https://eslint.org/blog/2023/10/deprecating-formatting-rules/"/>
    <updated>2023-10-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/10/deprecating-formatting-rules/</id>
    <content type="html">&lt;p&gt;In ESLint v8.53.0, scheduled to be released on Friday, November 3, 2023, we will formally deprecate our formatting rules. Formatting rules are those rules that simply enforce code conventions around spacing, semicolons, string formats, etc. For a variety of reasons, which are discussed in this post, this is the right decision for ESLint going forward. However, to understand how we got here, it’s helpful to look backward for a moment.&lt;/p&gt;
&lt;h2 id=&quot;background&quot; tabindex=&quot;-1&quot;&gt;Background&lt;/h2&gt;
&lt;p&gt;When ESLint was initially released in 2013, the JavaScript ecosystem was embroiled in a debate about whether or not source code formatting should be part of a linter. &lt;a href=&quot;https://jslint.com/&quot;&gt;JSLint&lt;/a&gt;, the original JavaScript linter, heavily encoded its author’s formatting preferences into the tool. Those preferences were carried over and loosened a bit in JSLint’s successor, &lt;a href=&quot;https://jshint.com/&quot;&gt;JSHint&lt;/a&gt;, but by 2013, JSHint had announced that it was &lt;a href=&quot;https://jshint.com/blog/jshint-3-plans/&quot;&gt;deprecating its formatting options&lt;/a&gt; and would be removing them in the next major release. While the options were never removed, they still &lt;a href=&quot;https://jshint.com/docs/options/#camelcase&quot;&gt;show this warning&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning&lt;/strong&gt; This option has been deprecated and will be removed in the next major release of JSHint.&lt;/p&gt;
&lt;p&gt;JSHint is limiting its scope to issues of code correctness. If you would like to enforce rules relating to code style, check out the JSCS project.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The &lt;a href=&quot;https://jscs-dev.github.io/&quot;&gt;JSCS&lt;/a&gt; project was born to cater to the growing desire of JavaScript developers to format their code in more specific ways. Appearing in the same year as ESLint, there was a bit of an experimentation period as people tried using different combinations of JSHint, JSCS, and ESLint to achieve their linting and formatting needs.&lt;/p&gt;
&lt;p&gt;Early on, I thought the only way for ESLint to reasonably compete with JSHint was to ensure that all available JSHint rules had ESLint equivalents. While the strength of ESLint was (and still is) in creating custom rules, I didn’t think ESLint would get much adoption if everyone had to recreate the JSHint rules for themselves. My initial plan was to make a couple dozen core rules and then leave the rest to be implemented as plugins.&lt;/p&gt;
&lt;p&gt;As time went on, ESLint received more and more requests to add formatting and stylistic rules to the core. Many of the requests mentioned that they didn’t want to use two tools (ESLint and JSCS) on their code and if ESLint could do everything that JSCS did, they could drop JSCS and just use ESLint. And so, now that ESLint had a team, we focused on getting feature parity to support this use case. Eventually, we did such a good job that JSCS usage dropped and we &lt;a href=&quot;https://eslint.org/blog/2016/04/welcoming-jscs-to-eslint/&quot;&gt;merged JSCS into ESLint&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What we didn’t know at the time was that JSHint had the right idea, and although ESLint had become the dominant linter (and source code formatter) for JavaScript, we had also signed up for a lot of work.&lt;/p&gt;
&lt;h2 id=&quot;javascript%E2%80%99s-explosion-and-the-maintenance-burden&quot; tabindex=&quot;-1&quot;&gt;JavaScript’s explosion and the maintenance burden&lt;/h2&gt;
&lt;p&gt;In the ensuing years, and especially spurred on by ECMAScript 6 and the growth of React, the way people were writing JavaScript was changing dramatically. Increasingly popular style guides like &lt;a href=&quot;https://airbnb.io/javascript/&quot;&gt;Airbnb&lt;/a&gt; and &lt;a href=&quot;https://standardjs.com/&quot;&gt;Standard&lt;/a&gt; encouraged JavaScript developers to get more specific about how their code was written. As a result, ESLint was inundated with requests for exceptions and options on formatting rules. Over the last ten years, we’ve seen all manner of bizarre styles accompanied by requests to enforce them in ESLint core rules. And every time new syntax is introduced, we get a flurry of requests to update existing rules and implement new rules.&lt;/p&gt;
&lt;p&gt;As we approached 300 rules in the core, we tried to reduce the maintenance burden by &lt;a href=&quot;https://eslint.org/blog/2020/05/changes-to-rules-policies/&quot;&gt;freezing stylistic rules&lt;/a&gt; so that we were no longer chasing down corner cases to support everyone’s personal preferences. That helped somewhat, but not enough.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rule clashes.&lt;/strong&gt; People expect that core rules will play nice with each other, meaning that no two rules should flag the same problem nor will any two core rules give conflicting advice. While that was easy when there were less than 30 core rules, with 300 rules it became difficult, if not impossible, to achieve.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unrealistic expectations.&lt;/strong&gt; With a large core of formatting rules, users expected that every possible style guide should be achievable just with core rules and without involving plugins. This put more pressure on the team to continue adding options, which also increased the size of the core.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Effort vs. value misalignment.&lt;/strong&gt; The maintenance burden of continuously adding new options and exceptions to support everyone’s style guides was falling on the ESLint team whereas the value was being extracted by a small number of users.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opportunity cost.&lt;/strong&gt; The more time we had to spend maintaining formatting rules, the less time we had to spend on things that are beneficial to large numbers of our users.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lack of interest.&lt;/strong&gt; While ESLint benefits from outside contributions, those contributors are just not interested to chasing down corner cases of spacing. The ESLint team, itself, prioritized these rules much lower than any other work, which often left issues open for extended periods of time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consistency issues.&lt;/strong&gt; Because ESLint’s rules are designed to be atomic and not to have access to other rules, we would run into issues where it wasn’t possible to correctly fix an error because the information was in another rule. For example, if an autofix needs to add a new line of code, it would need to know how the file is indented in order to apply the correct fix. However, the &lt;code&gt;indent&lt;/code&gt; rule controls indenting for ESLint, which meant that other rules needed to apply fixes without indentation and then trust that the &lt;code&gt;indent&lt;/code&gt; rule would fix the indentation on a subsequent pass.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these problems continued to grow as ESLint got older, and we’re finally at a point where we just cannot keep up with them.&lt;/p&gt;
&lt;h2 id=&quot;the-deprecated-rules&quot; tabindex=&quot;-1&quot;&gt;The deprecated rules&lt;/h2&gt;
&lt;p&gt;The following list contains all of the rules that will be deprecated in v8.53.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/array-bracket-newline&quot;&gt;&lt;code&gt;array-bracket-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/array-bracket-spacing&quot;&gt;&lt;code&gt;array-bracket-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/array-element-newline&quot;&gt;&lt;code&gt;array-element-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/arrow-parens&quot;&gt;&lt;code&gt;arrow-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/arrow-spacing&quot;&gt;&lt;code&gt;arrow-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/block-spacing&quot;&gt;&lt;code&gt;block-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/brace-style&quot;&gt;&lt;code&gt;brace-style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/comma-dangle&quot;&gt;&lt;code&gt;comma-dangle&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/comma-spacing&quot;&gt;&lt;code&gt;comma-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/comma-style&quot;&gt;&lt;code&gt;comma-style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/computed-property-spacing&quot;&gt;&lt;code&gt;computed-property-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/dot-location&quot;&gt;&lt;code&gt;dot-location&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/eol-last&quot;&gt;&lt;code&gt;eol-last&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/func-call-spacing&quot;&gt;&lt;code&gt;func-call-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/function-call-argument-newline&quot;&gt;&lt;code&gt;function-call-argument-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/function-paren-newline&quot;&gt;&lt;code&gt;function-paren-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/generator-star-spacing&quot;&gt;&lt;code&gt;generator-star-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/implicit-arrow-linebreak&quot;&gt;&lt;code&gt;implicit-arrow-linebreak&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/jsx-quotes&quot;&gt;&lt;code&gt;jsx-quotes&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/key-spacing&quot;&gt;&lt;code&gt;key-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/keyword-spacing&quot;&gt;&lt;code&gt;keyword-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/linebreak-style&quot;&gt;&lt;code&gt;linebreak-style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/lines-between-class-members&quot;&gt;&lt;code&gt;lines-between-class-members&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/lines-around-comment&quot;&gt;&lt;code&gt;lines-around-comment&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/max-len&quot;&gt;&lt;code&gt;max-len&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/max-statements-per-line&quot;&gt;&lt;code&gt;max-statements-per-line&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/multiline-ternary&quot;&gt;&lt;code&gt;multiline-ternary&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/new-parens&quot;&gt;&lt;code&gt;new-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/newline-per-chained-call&quot;&gt;&lt;code&gt;newline-per-chained-call&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-confusing-arrow&quot;&gt;&lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-extra-parens&quot;&gt;&lt;code&gt;no-extra-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-extra-semi&quot;&gt;&lt;code&gt;no-extra-semi&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-floating-decimal&quot;&gt;&lt;code&gt;no-floating-decimal&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-mixed-operators&quot;&gt;&lt;code&gt;no-mixed-operators&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs&quot;&gt;&lt;code&gt;no-mixed-spaces-and-tabs&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-multi-spaces&quot;&gt;&lt;code&gt;no-multi-spaces&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-multiple-empty-lines&quot;&gt;&lt;code&gt;no-multiple-empty-lines&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-tabs&quot;&gt;&lt;code&gt;no-tabs&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-trailing-spaces&quot;&gt;&lt;code&gt;no-trailing-spaces&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/no-whitespace-before-property&quot;&gt;&lt;code&gt;no-whitespace-before-property&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/nonblock-statement-body-position&quot;&gt;&lt;code&gt;nonblock-statement-body-position&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/object-curly-newline&quot;&gt;&lt;code&gt;object-curly-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/object-curly-spacing&quot;&gt;&lt;code&gt;object-curly-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/object-property-newline&quot;&gt;&lt;code&gt;object-property-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/one-var-declaration-per-line&quot;&gt;&lt;code&gt;one-var-declaration-per-line&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/operator-linebreak&quot;&gt;&lt;code&gt;operator-linebreak&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/padded-blocks&quot;&gt;&lt;code&gt;padded-blocks&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/padding-line-between-statements&quot;&gt;&lt;code&gt;padding-line-between-statements&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/quote-props&quot;&gt;&lt;code&gt;quote-props&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/quotes&quot;&gt;&lt;code&gt;quotes&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/rest-spread-spacing&quot;&gt;&lt;code&gt;rest-spread-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/semi&quot;&gt;&lt;code&gt;semi&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/semi-spacing&quot;&gt;&lt;code&gt;semi-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/semi-style&quot;&gt;&lt;code&gt;semi-style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/space-before-blocks&quot;&gt;&lt;code&gt;space-before-blocks&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/space-before-function-paren&quot;&gt;&lt;code&gt;space-before-function-paren&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/space-in-parens&quot;&gt;&lt;code&gt;space-in-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/space-infix-ops&quot;&gt;&lt;code&gt;space-infix-ops&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/space-unary-ops&quot;&gt;&lt;code&gt;space-unary-ops&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/spaced-comment&quot;&gt;&lt;code&gt;spaced-comment&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/switch-colon-spacing&quot;&gt;&lt;code&gt;switch-colon-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/template-curly-spacing&quot;&gt;&lt;code&gt;template-curly-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/template-tag-spacing&quot;&gt;&lt;code&gt;template-tag-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/wrap-iife&quot;&gt;&lt;code&gt;wrap-iife&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/wrap-regex&quot;&gt;&lt;code&gt;wrap-regex&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/rules/yield-star-spacing&quot;&gt;&lt;code&gt;yield-star-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these rules will be deprecated as of the next release, but will not be removed until at least ESLint v10.0.0 (if not later). You can continue to use them although you may see deprecation warnings in the ESLint CLI.&lt;/p&gt;
&lt;h2 id=&quot;what-you-should-do-instead&quot; tabindex=&quot;-1&quot;&gt;What you should do instead&lt;/h2&gt;
&lt;p&gt;We recommend using a source code formatter instead of ESLint for formatting your code. Source code formatters are built to understand the entire file and apply consistent formatting throughout. While you might not have as much control over exceptions as with ESLint, the tradeoff is the simplicity and speed you’ll get vs. configuring ESLint with dozens of individual rules. There are two formatters that we recommend:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://prettier.io/&quot;&gt;Prettier&lt;/a&gt; - a JavaScript-based formatter with support for formatting a large number of languages&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dprint.dev/&quot;&gt;dprint&lt;/a&gt; - a Rust-based formatter with support for a smaller set of languages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the idea of using a dedicated source code formatter doesn’t appeal to you, you can also use &lt;a href=&quot;https://eslint.style/packages/js&quot;&gt;&lt;code&gt;@stylistic/eslint-plugin-js&lt;/code&gt;&lt;/a&gt; for JavaScript or &lt;a href=&quot;https://eslint.style/packages/ts&quot;&gt;&lt;code&gt;@stylistic/eslint-plugin-ts&lt;/code&gt;&lt;/a&gt; for TypeScript. These packages contain the deprecated formatting rules from the ESLint core and &lt;a href=&quot;https://typescript-eslint.io/&quot;&gt;&lt;code&gt;typescript-eslint&lt;/code&gt;&lt;/a&gt;, respectively. The packages are maintained by &lt;a href=&quot;https://github.com/antfu&quot;&gt;Anthony Fu&lt;/a&gt;, who has decided to continue maintaining these rules going forward. If you’d like to continue using the rules mentioned in this post, then we recommend switching to these packages.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;We know that a lot of people rely on ESLint for code quality and formatting purposes, and as such, we don’t take significant decisions like this lightly. Unfortunately, the way we’ve been doing things just won’t scale much further and we needed to make this change. The ubiquity and popularity of dedicated source code formatters made this decision somewhat easier, as was Anthony Fu volunteering to maintain the rules as a separate package. We hope that one of the available options mentioned in this post will ensure that people can continue formatting their source code in their preferred way.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.52.0 released</title>
    <link href="https://eslint.org/blog/2023/10/eslint-v8.52.0-released/"/>
    <updated>2023-10-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/10/eslint-v8.52.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;unused-eslint-enable-directives&quot; tabindex=&quot;-1&quot;&gt;Unused &lt;code&gt;eslint-enable&lt;/code&gt; directives&lt;/h3&gt;
&lt;p&gt;The CLI option &lt;a href=&quot;https://eslint.org/docs/latest/use/command-line-interface#--report-unused-disable-directives&quot;&gt;&lt;code&gt;--report-unused-disable-directives&lt;/code&gt;&lt;/a&gt; and the config option &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/rules#report-unused-eslint-disable-comments&quot;&gt;&lt;code&gt;reportUnusedDisableDirectives:true&lt;/code&gt;&lt;/a&gt; now also report and autofix unused &lt;code&gt;eslint-enable&lt;/code&gt; directives. An &lt;code&gt;eslint-enable&lt;/code&gt; directive is considered unused if it doesn’t match with any &lt;code&gt;eslint-disable&lt;/code&gt; directives, meaning that it doesn’t re-enable any rules.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* eslint-disable no-console */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;hello&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* eslint-enable no-continue -- this directive is unused */&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/70648ee49c07f7b533d09f6bf8a5291e5a5a8601&quot;&gt;&lt;code&gt;70648ee&lt;/code&gt;&lt;/a&gt; feat: report-unused-disable-directive to report unused eslint-enable (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17611&quot;&gt;#17611&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5de9637fc925729a83d5a5e9e868a41792a184e3&quot;&gt;&lt;code&gt;5de9637&lt;/code&gt;&lt;/a&gt; fix: Ensure shared references in rule configs are separated (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17666&quot;&gt;#17666&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dcfe5739c374c9d7ed21f14027870ec0fd453661&quot;&gt;&lt;code&gt;dcfe573&lt;/code&gt;&lt;/a&gt; fix: add preceding semicolon in suggestions of &lt;a href=&quot;https://eslint.org/docs/rules/no-object-constructor&quot;&gt;&lt;code&gt;no-object-constructor&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17649&quot;&gt;#17649&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/476d58a584d5d2db003c4c22ffee90e63566164d&quot;&gt;&lt;code&gt;476d58a&lt;/code&gt;&lt;/a&gt; docs: Add note about invalid CLI flags when using flat config. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17664&quot;&gt;#17664&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/660ed3afd128ad529234a855345629982caf1bc7&quot;&gt;&lt;code&gt;660ed3a&lt;/code&gt;&lt;/a&gt; docs: Plugin flat config migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17640&quot;&gt;#17640&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a58aa200fccedae7e2e9b6129246f2cedab14f8d&quot;&gt;&lt;code&gt;a58aa20&lt;/code&gt;&lt;/a&gt; docs: fix examples for several rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17645&quot;&gt;#17645&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/179929bd46892f18f2aef0c159d5cc361cb69987&quot;&gt;&lt;code&gt;179929b&lt;/code&gt;&lt;/a&gt; docs: Remove trailing newline from the code of Playground links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17641&quot;&gt;#17641&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8e5c30636450d4a8baf51f0e227685e6d77ac64&quot;&gt;&lt;code&gt;f8e5c30&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7ef2f34fe12b68a366e1b4bf5f64d7332c6e72e&quot;&gt;&lt;code&gt;b7ef2f3&lt;/code&gt;&lt;/a&gt; docs: Enable pretty code formatter output (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17635&quot;&gt;#17635&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0bcb9a8db608a3d0bd2645f99e0707b9a9bbaaf0&quot;&gt;&lt;code&gt;0bcb9a8&lt;/code&gt;&lt;/a&gt; docs: Fix syntax errors in rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17633&quot;&gt;#17633&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/61b90839633ef300ac7707a651f65f532e65f42d&quot;&gt;&lt;code&gt;61b9083&lt;/code&gt;&lt;/a&gt; docs: Make &lt;a href=&quot;https://eslint.org/docs/rules/no-continue&quot;&gt;no-continue&lt;/a&gt; example code work (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17643&quot;&gt;#17643&lt;/a&gt;) (Zhongyuan Zhou)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9fafe450c31ed9b6bdd9dcd6c115255943b8c1c2&quot;&gt;&lt;code&gt;9fafe45&lt;/code&gt;&lt;/a&gt; docs: upgrade to 11ty 2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17632&quot;&gt;#17632&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff8e4bf327b5c92b0623b0fc5f8f101954f785db&quot;&gt;&lt;code&gt;ff8e4bf&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fab249ae6addac2ee18cd81cee80916010bb469e&quot;&gt;&lt;code&gt;fab249a&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/392305bf4797e3ebc696dfca48bd874741fca845&quot;&gt;&lt;code&gt;392305b&lt;/code&gt;&lt;/a&gt; docs: Update &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;&lt;code&gt;no-irregular-whitespace&lt;/code&gt;&lt;/a&gt; and fix examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17626&quot;&gt;#17626&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6b8acfb770589f3941df41c3910d3b8ffc3e1e45&quot;&gt;&lt;code&gt;6b8acfb&lt;/code&gt;&lt;/a&gt; docs: Add real whitespace to &lt;a href=&quot;https://eslint.org/docs/rules/no-trailing-spaces&quot;&gt;&lt;code&gt;no-trailing-spaces&lt;/code&gt;&lt;/a&gt; examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17630&quot;&gt;#17630&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1000187e00949332babcee4d37d46c96a6a554a8&quot;&gt;&lt;code&gt;1000187&lt;/code&gt;&lt;/a&gt; docs: Fix examples in &lt;a href=&quot;https://eslint.org/docs/rules/unicode-bom&quot;&gt;&lt;code&gt;unicode-bom&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17631&quot;&gt;#17631&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/000290c4c923cc1473e21b4bdbdc0c42765ef7dd&quot;&gt;&lt;code&gt;000290c&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d1f0c2da0309c06c21149b8d71a8f439a70d7e8&quot;&gt;&lt;code&gt;6d1f0c2&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.52.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17671&quot;&gt;#17671&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d63d4fe0942e6747ab60e758aa36076f43041a30&quot;&gt;&lt;code&gt;d63d4fe&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f30cefee6bda2789ede18e1664b84c2638ea1bb5&quot;&gt;&lt;code&gt;f30cefe&lt;/code&gt;&lt;/a&gt; test: fix FlatESLint tests for caching (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17658&quot;&gt;#17658&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ef650cb612510bcfa1379c1f0af56dd563b3a705&quot;&gt;&lt;code&gt;ef650cb&lt;/code&gt;&lt;/a&gt; test: update tests for &lt;a href=&quot;https://eslint.org/docs/rules/no-promise-executor-return&quot;&gt;no-promise-executor-return&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17661&quot;&gt;#17661&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Flat config rollout plans</title>
    <link href="https://eslint.org/blog/2023/10/flat-config-rollout-plans/"/>
    <updated>2023-10-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/10/flat-config-rollout-plans/</id>
    <content type="html">&lt;p&gt;It may seem hard to believe, but the &lt;a href=&quot;https://github.com/eslint/rfcs/tree/main/designs/2019-config-simplification&quot;&gt;RFC for ESLint’s new configuration system&lt;/a&gt;, nicknamed flat config, was first written in 2019. It took until 2022 (&lt;a href=&quot;https://eslint.org/blog/2022/08/eslint-v8.21.0-released/&quot;&gt;v8.21.0&lt;/a&gt;) for us to release an experimental, opt-in version of flat config. Since then, we’ve been making changes and improvements based on feedback from the community. The plan was always to allow the current configuration system, nicknamed eslintrc, to exist alongside flat config for a period of time to allow a smooth transition for ESLint users. With flat config now feature complete, we are happy to share the rollout plan.&lt;/p&gt;
&lt;h2 id=&quot;flat-config-by-default-in-eslint-v9.0.0&quot; tabindex=&quot;-1&quot;&gt;Flat config by default in ESLint v9.0.0&lt;/h2&gt;
&lt;p&gt;When ESLint v9.0.0 is released, either the end of this year or beginning of next year, flat config will be the default configuration system and we will deprecate, but not remove, eslintrc. New features will be added only for flat config, so we encourage everyone to move off of eslintrc as quickly as possible to take advantage of everything v9.0.0 will offer.&lt;/p&gt;
&lt;p&gt;What this change means for you depends on how you use ESLint, and if you have any questions or concerns, please stop by our &lt;a href=&quot;https://eslint.org/chat&quot;&gt;Discord&lt;/a&gt; to discuss with the team.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For CLI users&lt;/strong&gt;, this means a few things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The ESLint CLI will search for &lt;code&gt;eslint.config.js&lt;/code&gt; by default instead of a &lt;code&gt;.eslintrc.*&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;If an &lt;code&gt;eslint.config.js&lt;/code&gt; file is not found, the CLI will consider this an error and won’t run.&lt;/li&gt;
&lt;li&gt;If you want to use eslintrc, you’ll need to set the &lt;code&gt;ESLINT_USE_FLAT_CONFIG&lt;/code&gt; environment variable to &lt;code&gt;false&lt;/code&gt;. When you do this, you’ll get a deprecation warning in the console.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;For rule developers&lt;/strong&gt;, the &lt;code&gt;RuleTester&lt;/code&gt; class will be equivalent to the current &lt;code&gt;FlatRuleTester&lt;/code&gt; class. If you are passing any parser-related options to your rule tests, you’ll need to update those to comply with the flat config format for those options.&lt;/p&gt;
&lt;p&gt;You should also make sure that your rules aren’t using &lt;code&gt;context.parserOptions&lt;/code&gt; and &lt;code&gt;context.parserPath&lt;/code&gt;. Instead, you should be using &lt;code&gt;context.languageOptions&lt;/code&gt; and &lt;code&gt;context.languageOptions.parser&lt;/code&gt;, which also work when ESLint is run in eslintrc mode. See our &lt;a href=&quot;https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/&quot;&gt;previous post&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For shareable config authors&lt;/strong&gt;, you should update your shareable configs to use flat config format. This includes moving referenced plugins from the &lt;code&gt;peerDependencies&lt;/code&gt; section of &lt;code&gt;package.json&lt;/code&gt; to the &lt;code&gt;dependencies&lt;/code&gt; section.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For plugin developers&lt;/strong&gt;, you should update your exported &lt;code&gt;configs&lt;/code&gt; to use flat config format. The rest of your plugin, including &lt;code&gt;rules&lt;/code&gt; and &lt;code&gt;processors&lt;/code&gt;, don’t require any changes. Please see the &lt;a href=&quot;https://eslint.org/docs/latest/extend/plugin-migration-flat-config&quot;&gt;plugin migration guide&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For API users&lt;/strong&gt;, you’ll need to decide whether or not you want to support both configuration systems in the short term. The API in v9.0.0 will change in the following ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;ESLint&lt;/code&gt; class will now be equivalent to the &lt;code&gt;FlatESLint&lt;/code&gt; class in v8.x. With the exception of a few options, this should mostly be a transparent change.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;LegacyESLint&lt;/code&gt; class will still be provided to allow access to the eslintrc functionality, but we will not be updating this class in v9.x. All new features will be implemented only for flat config-based APIs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;FlatESLint&lt;/code&gt; class will still be provided to avoid unnecessarily breaking existing implementations, but we encourage you to switch over to &lt;code&gt;ESLint&lt;/code&gt; as soon as possible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;shouldUseFlatConfig()&lt;/code&gt; method will return &lt;code&gt;true&lt;/code&gt; unless the &lt;code&gt;ESLINT_USE_FLAT_CONFIG&lt;/code&gt; environment variable is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;Linter&lt;/code&gt; class will switch to flat config mode by default, but you’ll still be able to set it to use eslintrc by specifying the &lt;code&gt;configType&lt;/code&gt; option in the constructor to be &lt;code&gt;&amp;quot;eslintrc&amp;quot;&lt;/code&gt;, such as:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; linter &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Linter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;configType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslintrc&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;eslintrc-removed-in-eslint-v10.0.0&quot; tabindex=&quot;-1&quot;&gt;eslintrc removed in ESLint v10.0.0&lt;/h2&gt;
&lt;p&gt;When ESLint v10.0.0 is released (end of 2024 or early 2025 in all likelihood), the eslintrc configuration system will be completely removed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For CLI users&lt;/strong&gt;, this means a few things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The ESLint CLI will search for &lt;code&gt;eslint.config.js&lt;/code&gt; instead of a &lt;code&gt;.eslintrc.*&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;If an &lt;code&gt;eslint.config.js&lt;/code&gt; file is not found, the CLI will consider this an error and won’t run.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;ESLINT_USE_FLAT_CONFIG&lt;/code&gt; environment variable will no longer be honored but won’t throw an error.&lt;/li&gt;
&lt;li&gt;CLI options that were specific to eslintrc config files will be removed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;For rule developers&lt;/strong&gt;, the &lt;code&gt;context.parserPath&lt;/code&gt; and &lt;code&gt;context.parserOptions&lt;/code&gt; properties will be removed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For shareable config authors&lt;/strong&gt;, there are no additional concerns in v10.0.0.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For plugin developers&lt;/strong&gt;, there are no additional concerns in v10.0.0.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For API users&lt;/strong&gt;, you’ll need to stop using the classes from the &lt;code&gt;/use-at-your-own-risk&lt;/code&gt; entrypoint. The API in v10.0.0 will change in the following ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ESLint&lt;/code&gt; class will now be the only way to interact with the core.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;LegacyESLint&lt;/code&gt; class will be removed.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;FlatESLint&lt;/code&gt; class will be removed.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;shouldUseFlatConfig()&lt;/code&gt; method will always return &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;Linter&lt;/code&gt; class &lt;code&gt;configType&lt;/code&gt; constructor option will be invalid and throw an error.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;We’ve come a long way in the development of our new configuration system and we still have a long way to go. This is an intentionally slow rollout to make sure that everyone can comfortably update their config files with as little disruption as possible. Shifting an entire ecosystem over to a new API is a responsibility we take seriously, and we hope that is evident in the phased rollout plan. You can continue to follow our progress by watching &lt;a href=&quot;https://github.com/eslint/eslint/issues/13481&quot;&gt;the implementation issue&lt;/a&gt;. If you need help with, or have questions about, any of what was discussed in this post, please &lt;a href=&quot;https://github.com/eslint/eslint/discussions/new&quot;&gt;start a discussion&lt;/a&gt; or stop by &lt;a href=&quot;https://eslint.org/chat&quot;&gt;Discord&lt;/a&gt; to talk with the team.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.51.0 released</title>
    <link href="https://eslint.org/blog/2023/10/eslint-v8.51.0-released/"/>
    <updated>2023-10-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/10/eslint-v8.51.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;new-cli-option---no-warn-ignored&quot; tabindex=&quot;-1&quot;&gt;New CLI option &lt;code&gt;--no-warn-ignored&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;This release includes a new CLI option &lt;a href=&quot;https://eslint.org/docs/latest/use/command-line-interface#--no-warn-ignored&quot;&gt;&lt;code&gt;--no-warn-ignored&lt;/code&gt;&lt;/a&gt; that, when on, suppresses warnings about ignored files that were explicitly passed in the file list. The new option is available only in the &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files-new&quot;&gt;flat config&lt;/a&gt; mode.&lt;/p&gt;
&lt;p&gt;This option is particularly useful when ESLint is run with &lt;code&gt;--max-warnings 0&lt;/code&gt; from tools that pass a list of individual files, such as &lt;code&gt;lint-staged&lt;/code&gt;, as it prevents exit code 1 when an ignored file is passed.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
    &amp;quot;lint-staged&amp;quot;: {
        &amp;quot;*.js&amp;quot;: &amp;quot;eslint --max-warnings 0 --no-warn-ignored&amp;quot;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;api&quot; tabindex=&quot;-1&quot;&gt;API&lt;/h4&gt;
&lt;p&gt;As part of this change, &lt;code&gt;FlatESLint&lt;/code&gt; constructor has a new option &lt;code&gt;warnIgnored: boolean&lt;/code&gt;, default &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;warnIgnored&lt;/code&gt; option of &lt;code&gt;FlatESLint#lintText()&lt;/code&gt; is still available, but it now defaults to the value of the constructor option. Effectively, its default value is changed from &lt;code&gt;false&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;. In order to retain previous behavior, pass &lt;code&gt;warnIgnored: false&lt;/code&gt; to &lt;code&gt;FlatESLint#lintText()&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; eslint &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;FlatESLint&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; eslint&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;lintFiles&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;patterns&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; eslint&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;lintText&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;code&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; filePath&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;warnIgnored&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a9c43339a4adef24ef83034d0b078dd279cc977&quot;&gt;&lt;code&gt;0a9c433&lt;/code&gt;&lt;/a&gt; feat: Add &lt;code&gt;--no-warn-ignored&lt;/code&gt; CLI option for flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17569&quot;&gt;#17569&lt;/a&gt;) (Domantas Petrauskas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/977e67ec274a05cb7391665b5e3453e7f72f72b2&quot;&gt;&lt;code&gt;977e67e&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/logical-assignment-operators&quot;&gt;logical-assignment-operators&lt;/a&gt; to report expressions with 3 operands (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17600&quot;&gt;#17600&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f976b2f7bfe7cc78bb649f8b37e90fd519ff3bcc&quot;&gt;&lt;code&gt;f976b2f&lt;/code&gt;&lt;/a&gt; fix: make rule severity case-sensitive in flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17619&quot;&gt;#17619&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0edfe369aa5bd80a98053022bb4c6b1ea0155f44&quot;&gt;&lt;code&gt;0edfe36&lt;/code&gt;&lt;/a&gt; fix: Ensure crash error messages are not duplicated (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17584&quot;&gt;#17584&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd79abc0c1857b1d765acc312c0d6518e40d31c9&quot;&gt;&lt;code&gt;dd79abc&lt;/code&gt;&lt;/a&gt; fix: &lt;code&gt;eslint-disable&lt;/code&gt; to be able to parse quoted rule names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17612&quot;&gt;#17612&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d2f68019b8882278877801c5ef2f74d55e2a10c1&quot;&gt;&lt;code&gt;d2f6801&lt;/code&gt;&lt;/a&gt; fix: Ensure correct code path for &amp;amp;&amp;amp; followed by ?? (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17618&quot;&gt;#17618&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee5be81fa3c4fe801c2f653854f098ed6a84dcef&quot;&gt;&lt;code&gt;ee5be81&lt;/code&gt;&lt;/a&gt; docs: default to &lt;code&gt;sourceType: &amp;quot;module&amp;quot;&lt;/code&gt; in rule examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17615&quot;&gt;#17615&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1aa26df9fbcfdf5b895743c6d2d3a216479544b1&quot;&gt;&lt;code&gt;1aa26df&lt;/code&gt;&lt;/a&gt; docs: Add more examples for &lt;a href=&quot;https://eslint.org/docs/rules/multiline-ternary&quot;&gt;multiline-ternary&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17610&quot;&gt;#17610&lt;/a&gt;) (George Ashiotis)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/47d0b446964f44d70b9457ecc368e721e1dc7c11&quot;&gt;&lt;code&gt;47d0b44&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dbf831e31f8eea0bc94df96cd33255579324b66e&quot;&gt;&lt;code&gt;dbf831e&lt;/code&gt;&lt;/a&gt; docs: use generated og image (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17601&quot;&gt;#17601&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1866da5e1d931787256ecb825a803cac5835b71c&quot;&gt;&lt;code&gt;1866da5&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ef39ea5b884453be717ebc929155d7eb584dcbf&quot;&gt;&lt;code&gt;1ef39ea&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.51.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17624&quot;&gt;#17624&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8c7403255c11e99c402860aef3c0179f2b16628&quot;&gt;&lt;code&gt;f8c7403&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2665552ba0057e8603f9fbece0fd236f189f5cf3&quot;&gt;&lt;code&gt;2665552&lt;/code&gt;&lt;/a&gt; test: fix flat config linter tests to use Linter in flat config mode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17616&quot;&gt;#17616&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b77bccbb51bd36b2d20fea61bc782545c4029b3&quot;&gt;&lt;code&gt;7b77bcc&lt;/code&gt;&lt;/a&gt; chore: Refactor CodePathState (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17510&quot;&gt;#17510&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bc77c9af12539f350ef19e30611a153a5b869c6b&quot;&gt;&lt;code&gt;bc77c9a&lt;/code&gt;&lt;/a&gt; chore: Document and refactor ForkContext (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17566&quot;&gt;#17566&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24e1f140ec68659e55c1ace0d7500addb135a2b4&quot;&gt;&lt;code&gt;24e1f14&lt;/code&gt;&lt;/a&gt; chore: Refactor and document CodePath (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17558&quot;&gt;#17558&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Preparing your custom rules for ESLint v9.0.0</title>
    <link href="https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/"/>
    <updated>2023-09-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/</id>
    <content type="html">&lt;p&gt;When ESLint v9.0.0 is released, it will ship with several breaking changes for rule authors. These changes are necessary as part of the work to implement &lt;a href=&quot;https://github.com/eslint/rfcs/blob/main/designs/2022-languages/README.md&quot;&gt;language plugins&lt;/a&gt;, which gives ESLint first-class support for linting languages other than JavaScript. We’ve had to make these changes because ESLint has, from the start, assumed that it would only ever be used to lint JavaScript. As such, there wasn’t a lot of thought put into where methods that rules used to interact with source code should live. When revisiting the API for the language plugins work we found that the inconsistencies we were able to live with in a JavaScript-only world will not work in a language-agnostic ESLint core.&lt;/p&gt;
&lt;h2 id=&quot;automatically-update-your-rules&quot; tabindex=&quot;-1&quot;&gt;Automatically update your rules&lt;/h2&gt;
&lt;p&gt;Before explaining all of the changes introduced in ESLint v9.0.0, it’s helpful to know that most of the changes described in this post can be automatically made using the &lt;a href=&quot;https://www.npmjs.com/package/eslint-transforms&quot;&gt;&lt;code&gt;eslint-transforms&lt;/code&gt;&lt;/a&gt; utility. To use the utility, first install it and then run the &lt;code&gt;v9-rule-migration&lt;/code&gt; transform, like this:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# install the utility&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; eslint-transforms &lt;span class=&quot;token parameter variable&quot;&gt;-g&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# apply the transform to one file&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;eslint-transforms v9-rule-migration rule.js&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# apply the transform to all files in a directory&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;eslint-transforms v9-rule-migration rules/&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Not every change can be addressed with &lt;code&gt;eslint-tranforms&lt;/code&gt;, though, so below is a complete list of the API changes and recommended ways to address them.&lt;/p&gt;
&lt;h2 id=&quot;context-methods-becoming-properties&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;context&lt;/code&gt; methods becoming properties&lt;/h2&gt;
&lt;p&gt;As we look towards the API we’d like rules for other languages to have, we decided to convert some methods on &lt;code&gt;context&lt;/code&gt; to properties. The methods in the following table just returned some data that didn’t change, so there was no reason they couldn’t be properties instead.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Deprecated on &lt;code&gt;context&lt;/code&gt;&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Property on &lt;code&gt;context&lt;/code&gt;&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getSourceCode()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;context.sourceCode&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getFilename()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;context.filename&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getPhysicalFilename()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;context.physicalFilename&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getCwd()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;context.cwd&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;We are deprecating the methods in favor of the properties (added in v8.40.0). These methods will be removed in v10.0.0 (not v9.0.0) as they are not blocking language plugins work. Here’s an example that ensures the correct value is used:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; sourceCode &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sourceCode &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getSourceCode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; cwd &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cwd &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getCwd&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; filename &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;filename &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getFilename&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; physicalFilename &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;physicalFilename &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getPhysicalFilename&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;Program&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;node&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token comment&quot;&gt;// do something&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;from-context-to-sourcecode&quot; tabindex=&quot;-1&quot;&gt;From &lt;code&gt;context&lt;/code&gt; to &lt;code&gt;SourceCode&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;The majority of the breaking changes for rule authors consist of moving methods off of the &lt;code&gt;context&lt;/code&gt; object that is passed into rules and onto the &lt;code&gt;SourceCode&lt;/code&gt; object that is retrieved via &lt;code&gt;context.sourceCode&lt;/code&gt; (or the deprecated &lt;code&gt;context.getSourceCode()&lt;/code&gt;; see below). The area of responsibility for &lt;code&gt;context&lt;/code&gt; vs. &lt;code&gt;SourceCode&lt;/code&gt; has shifted during the lifetime of ESLint: In the beginning, &lt;code&gt;context&lt;/code&gt; was the home for everything rules needed to use. Once we added &lt;code&gt;SourceCode&lt;/code&gt;, we slowly started adding more methods to it. The end result was that some methods lived on &lt;code&gt;context&lt;/code&gt; and some methods lived on &lt;code&gt;SourceCode&lt;/code&gt;, and the only reason why? The time at which the methods were added.&lt;/p&gt;
&lt;p&gt;In a language-agnostic ESLint core, we need to redefine the responsibilities of these two objects. Going forward, &lt;code&gt;context&lt;/code&gt; is the home for functionality that rules need to interact with the core while &lt;code&gt;SourceCode&lt;/code&gt; is the home for functionality that rules need to interact with the code being linted. This allows the same &lt;code&gt;context&lt;/code&gt; object to be used regardless of the language being linted as well as allowing language plugins to define their own &lt;code&gt;SourceCode&lt;/code&gt; class to provide methods that are unique to that language.&lt;/p&gt;
&lt;p&gt;All of this is to say that we are deprecating all of the code-related methods on &lt;code&gt;context&lt;/code&gt; and moving them to &lt;code&gt;SourceCode&lt;/code&gt;. The following table shows which fields on &lt;code&gt;context&lt;/code&gt; are moving to &lt;code&gt;SourceCode&lt;/code&gt;. Note that the method signatures remain unchanged for all of these methods even if the name changes:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Deprecated on &lt;code&gt;context&lt;/code&gt;&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Replacement(s) on &lt;code&gt;SourceCode&lt;/code&gt;&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getSource()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getText()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getSourceLines()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getLines()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getAllComments()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getAllComments()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getNodeByRangeIndex()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getNodeByRangeIndex()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getComments()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getCommentsBefore()&lt;/code&gt;, &lt;code&gt;sourceCode.getCommentsAfter()&lt;/code&gt;, &lt;code&gt;sourceCode.getCommentsInside()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getCommentsBefore()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getCommentsBefore()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getCommentsAfter()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getCommentsAfter()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getCommentsInside()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getCommentsInside()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getJSDocComment()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getJSDocComment()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getFirstToken()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getFirstToken()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getFirstTokens()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getFirstTokens()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getLastToken()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getLastToken()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getLastTokens()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getLastTokens()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getTokenAfter()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getTokenAfter()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getTokenBefore()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getTokenBefore()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getTokenByRangeStart()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getTokenByRangeStart()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getTokens()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getTokens()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getTokensAfter()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getTokensAfter()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getTokensBefore()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getTokensBefore()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.getTokensBetween()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.getTokensBetween()&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;context.parserServices&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceCode.parserServices&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;All of the &lt;code&gt;context&lt;/code&gt; methods listed in this table will be removed in ESLint v9.0.0, and the replacement methods on &lt;code&gt;SourceCode&lt;/code&gt; have already been in place for six years, so you should have no problem switching to the new methods. (Yes, we deprecated these and then completely forgot to remove them.)&lt;/p&gt;
&lt;p&gt;In addition to the methods in this table, there are several other methods that are also moving but required different method signatures.&lt;/p&gt;
&lt;h3 id=&quot;context.getscope()&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;context.getScope()&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;context.getScope()&lt;/code&gt; method is used to retrieve a scope object for the currently-traversed node. This method was always a bit strange because it uses ESLint’s internal traversal state to determine which node to use as a reference point to retrieve a scope object. That meant it was both limited, because you couldn’t change the reference node, and confusing, because it wasn’t always clear what node was being referenced. So, we are deprecating this method and will remove it in ESLint v9.0.0.&lt;/p&gt;
&lt;p&gt;We have introduced a new &lt;code&gt;SourceCode#getScope(node)&lt;/code&gt; method that requires you to pass in the reference node. This method was added in ESLint v8.37.0 so it has already been in place for the last six months. For best compatibility, you can check for the presence of this new method to determine which one to use:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; sourceCode &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sourceCode &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getSourceCode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;Program&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;node&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; scope &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;getScope&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getScope&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getScope&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token comment&quot;&gt;// do something with scope&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;context.getancestors()&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;context.getAncestors()&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;context.getAncestors()&lt;/code&gt; method is another method on &lt;code&gt;context&lt;/code&gt; that uses the internal traversal state to return the ancestors of the currently visited node. Also similar to &lt;code&gt;context.getScope()&lt;/code&gt;, this meant the method was both limited and unclear. We are deprecating this method and will remove it in v9.0.0. The replacement method is &lt;code&gt;SourceCode#getAncestors(node)&lt;/code&gt; (added in v8.38.0), which requires you to pass in the node whose ancestors you want to retrieve. Here is an example that checks for the correct method to use:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; sourceCode &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sourceCode &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getSourceCode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;Program&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;node&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; ancestors &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;getAncestors&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getAncestors&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getAncestors&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token comment&quot;&gt;// do something with ancestors&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;context.getdeclaredvariables(node)&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;context.getDeclaredVariables(node)&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;context.getDeclaredVariables(node)&lt;/code&gt; returns all variables declared by the given node (such as in a &lt;code&gt;let&lt;/code&gt; statement). We are deprecating this method and will remove it in v9.0.0. We are replacing it with &lt;code&gt;SourceCode#getDeclaredVariables(node)&lt;/code&gt; (added in v8.38.0), which works exactly the same way. Here is an example that checks for the correct method to use:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; sourceCode &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sourceCode &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getSourceCode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;Program&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;node&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; variables &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;getDeclaredVariables&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getDeclaredVariables&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getDeclaredVariables&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token comment&quot;&gt;// do something with variables&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;context.markvariableasused(name)&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;context.markVariableAsUsed(name)&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;context.markVariableAsUsed(name)&lt;/code&gt; method finds a variable with the given name in the current scope and marks it as used so it won’t cause a violation in the &lt;code&gt;no-unused-vars&lt;/code&gt; rule. This method has quite a bit of magic going on behind the scenes, as it uses the currently visited node in the traversal to retrieve a scope and then searches that scope for a variable with the given name. We are deprecating this method and will remove it in v9.0.0. The replacement method is &lt;code&gt;SourceCode#markVariableAsUsed(name, node)&lt;/code&gt; (added in v8.39.0) and requires you to pass in the reference node for the scope to search. (The scope ends up being the same as calling &lt;code&gt;SourceCode#getScope(node)&lt;/code&gt;.) Here is an example that checks for the correct method to use:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; sourceCode &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sourceCode &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getSourceCode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;Program&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;node&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; result &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;markVariableAsUsed&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;markVariableAsUsed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;foo&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;markVariableAsUsed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;foo&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;result&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                  &lt;span class=&quot;token comment&quot;&gt;// the variable was found and marked as used&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;codepath%23currentsegments&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;CodePath#currentSegments&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;A little-known ability of ESLint rules is &lt;a href=&quot;https://eslint.org/docs/latest/extend/code-path-analysis&quot;&gt;analyzing code paths&lt;/a&gt;. ESLint core rules use code path analysis in multiple rules to validate not just what the code looks like but also how the logic flows. This is done through accessing &lt;code&gt;CodePath&lt;/code&gt; and &lt;code&gt;CodePathSegment&lt;/code&gt; objects. In doing our research for language plugins, we discovered that &lt;code&gt;CodePath#currentSegments&lt;/code&gt; actually represents another traversal state that is exposed in rules. Specifically, &lt;code&gt;CodePath#currentSegments&lt;/code&gt; is an array that grows and shrinks throughout traversal as you encounter different code path segments. Because code path analysis is unique to JavaScript, we can’t have the core tracking this traversal state any longer. After evaluating several options, we decided that having an object that represented both code path data and traversal state was undesirable, so we are deprecating &lt;code&gt;CodePath#currentSegments&lt;/code&gt; and will remove it in v9.0.0. We needed to add two new event handlers, &lt;code&gt;onUnreachableCodePathSegmentStart&lt;/code&gt; and &lt;code&gt;onUnreachableCodePathSegmentEnd&lt;/code&gt;, to allow access to the same data (these were added in v8.49.0).&lt;/p&gt;
&lt;p&gt;To recreate this data, you’ll need to track the traversal state manually, which can be accomplished with the following code:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;meta&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// ...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// tracks the code path we are currently in&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; currentCodePath&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// tracks the segments we&#39;ve traversed in the current code path&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; currentSegments&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// tracks all current segments for all open paths&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; allCurrentSegments &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;onCodePathStart&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;codePath&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                currentCodePath &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; codePath&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                allCurrentSegments&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;currentSegments&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                currentSegments &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Set&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;onCodePathEnd&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;codePath&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                currentCodePath &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; codePath&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;upper&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                currentSegments &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; allCurrentSegments&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;onCodePathSegmentStart&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;segment&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                currentSegments&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;segment&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;onCodePathSegmentEnd&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;segment&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                currentSegments&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;segment&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;onUnreachableCodePathSegmentStart&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;segment&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                currentSegments&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;segment&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token function&quot;&gt;onUnreachableCodePathSegmentEnd&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;segment&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                currentSegments&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;segment&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We have already made this change in all of the ESLint core rules to validate that the approach works as expected.&lt;/p&gt;
&lt;h2 id=&quot;context-properties%3A-parseroptions-and-parserpath-being-removed&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;context&lt;/code&gt; properties: &lt;code&gt;parserOptions&lt;/code&gt; and &lt;code&gt;parserPath&lt;/code&gt; being removed&lt;/h2&gt;
&lt;p&gt;Additionally, the &lt;code&gt;context.parserOptions&lt;/code&gt; and &lt;code&gt;context.parserPath&lt;/code&gt; properties are deprecated and will be removed in v10.0.0 (not v9.0.0). There is a new &lt;code&gt;context.languageOptions&lt;/code&gt; property that allows rules to access similar data as &lt;code&gt;context.parserOptions&lt;/code&gt;. In general, though, rules should not depend on information either in &lt;code&gt;context.parserOptions&lt;/code&gt; or &lt;code&gt;context.languageOptions&lt;/code&gt; to determine how they should behave.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;context.parserPath&lt;/code&gt; property was intended to allow rules to retrieve an instance of the parser that ESLint is using via &lt;code&gt;require()&lt;/code&gt;. However, the new flat config system does not know the location of the parser module to load, so we are unable to provide this data. Further, because the JavaScript ecosystem is moving to ESM, any value returned from this property will not work with &lt;code&gt;import()&lt;/code&gt;. This property was added early on in ESLint’s life and we generally recommend that rules not try to further parse JavaScript code inside of them. If necessary, you can use &lt;code&gt;context.languageOptions.parser&lt;/code&gt; to access the parser ESLint is using.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;ESLint has been around for ten years, and in that time, we have collected some API cruft that we need to clean up in order to prepare ESLint for the next ten years. The API changes described in this post are a necessary step towards enabling ESLint to lint non-JavaScript languages and to better separate core functionality from language-specific functionality. The team spent a lot of time planning this transition point in ESLint’s lifecycle and we hope that these changes are just a small inconvenience for the ecosystem. If you need help with, or have questions about, any of what was discussed in this post, please &lt;a href=&quot;https://github.com/eslint/eslint/discussions/new&quot;&gt;start a discussion&lt;/a&gt; or stop by &lt;a href=&quot;https://eslint.org/chat&quot;&gt;Discord&lt;/a&gt; to talk with the team.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update (2024-06-06):&lt;/strong&gt; Added section on &lt;code&gt;eslint-tranforms&lt;/code&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.50.0 released</title>
    <link href="https://eslint.org/blog/2023/09/eslint-v8.50.0-released/"/>
    <updated>2023-09-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/09/eslint-v8.50.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-new-object&quot;&gt;no-new-object&lt;/a&gt; rule has been deprecated in favor of the new &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-object-constructor&quot;&gt;no-object-constructor&lt;/a&gt; rule.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; rule has a new option &lt;code&gt;allowVoid&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27d5a9e57ad347982a68fcd0e75eafee42d344f0&quot;&gt;&lt;code&gt;27d5a9e&lt;/code&gt;&lt;/a&gt; feat: add suggestions to &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17590&quot;&gt;#17590&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9082ff3f3956a0a5a7d7659de63640a21c4de0f&quot;&gt;&lt;code&gt;f9082ff&lt;/code&gt;&lt;/a&gt; feat: flat-rule-tester make sure default config always matches (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17585&quot;&gt;#17585&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/83914adbfd5fce7d11b33d095ba6d6a39be0dbbc&quot;&gt;&lt;code&gt;83914ad&lt;/code&gt;&lt;/a&gt; feat: Implement SourceCode#applyInlineConfig() (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17351&quot;&gt;#17351&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/22a558228ff98f478fa308c9ecde361acc4caf20&quot;&gt;&lt;code&gt;22a5582&lt;/code&gt;&lt;/a&gt; feat: add rule &lt;a href=&quot;https://eslint.org/docs/rules/no-object-constructor&quot;&gt;&lt;code&gt;no-object-constructor&lt;/code&gt;&lt;/a&gt;, deprecate &lt;a href=&quot;https://eslint.org/docs/rules/no-new-object&quot;&gt;&lt;code&gt;no-new-object&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17576&quot;&gt;#17576&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85a3d9e967b19cb4a0189746499d81ef2f93e14e&quot;&gt;&lt;code&gt;85a3d9e&lt;/code&gt;&lt;/a&gt; feat: allowVoid option in &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17564&quot;&gt;#17564&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc4d26b5a59d510f2c878e973fd245e8eff27c2a&quot;&gt;&lt;code&gt;cc4d26b&lt;/code&gt;&lt;/a&gt; fix: Ensure deprecated context.parserServices warns (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17593&quot;&gt;#17593&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ea4cfb585dcb52ac3cb1522a32f25cfe507121b&quot;&gt;&lt;code&gt;1ea4cfb&lt;/code&gt;&lt;/a&gt; fix: Ensure all RuleTester tests all deprecated context methods (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17587&quot;&gt;#17587&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aa1b657a9febcd03e9298c03ae2888762795e322&quot;&gt;&lt;code&gt;aa1b657&lt;/code&gt;&lt;/a&gt; fix: wrong suggestion and message in &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17571&quot;&gt;#17571&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/180053759c6cf05a326c710353b4717fbf289ee0&quot;&gt;&lt;code&gt;1800537&lt;/code&gt;&lt;/a&gt; docs: Fix and standardize JSX code examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17591&quot;&gt;#17591&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/48a44a73ac456739bdee348bbaf1840d2b1e4830&quot;&gt;&lt;code&gt;48a44a7&lt;/code&gt;&lt;/a&gt; docs: Add correct/incorrect tags to &lt;a href=&quot;https://eslint.org/docs/rules/prefer-arrow-callback&quot;&gt;&lt;code&gt;prefer-arrow-callback&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17589&quot;&gt;#17589&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/20893d48b9012f2b61bbbfeac8bee70d68d90e5e&quot;&gt;&lt;code&gt;20893d4&lt;/code&gt;&lt;/a&gt; docs: fix incorrect tag’s place (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17575&quot;&gt;#17575&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bd7a71fd6b7efb0445393304e2d48c5c06d46a45&quot;&gt;&lt;code&gt;bd7a71f&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8a8a2d6b45c82f94a574623759b6e3d2af193f3&quot;&gt;&lt;code&gt;f8a8a2d&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.50.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17599&quot;&gt;#17599&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38ada6df8f4a0313b7d0739b28f0af6b4897b8ce&quot;&gt;&lt;code&gt;38ada6d&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.49.0 released</title>
    <link href="https://eslint.org/blog/2023/09/eslint-v8.49.0-released/"/>
    <updated>2023-09-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/09/eslint-v8.49.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Code path analysis now provides two new &lt;a href=&quot;https://eslint.org/docs/latest/extend/code-path-analysis#events&quot;&gt;events&lt;/a&gt; that can be used in rules: &lt;code&gt;onUnreachableCodePathSegmentStart&lt;/code&gt; and &lt;code&gt;onUnreachableCodePathSegmentEnd&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CodePath#currentSegments&lt;/code&gt; property has been deprecated and will be removed in ESLint v9. If you use this property in your custom rules, please refer to &lt;a href=&quot;https://eslint.org/docs/latest/extend/code-path-analysis#usage-examples&quot;&gt;code path analysis usage examples&lt;/a&gt; for how to update your code.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/lines-between-class-members&quot;&gt;lines-between-class-members&lt;/a&gt; rule has a new option &lt;code&gt;enforce&lt;/code&gt; that allows for more granular configurations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da09f4e641141f585ef611c6e9d63d4331054706&quot;&gt;&lt;code&gt;da09f4e&lt;/code&gt;&lt;/a&gt; feat: Implement onUnreachableCodePathStart/End (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17511&quot;&gt;#17511&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/32b2327aafdd3b911fabab69ed75c9ff97658c60&quot;&gt;&lt;code&gt;32b2327&lt;/code&gt;&lt;/a&gt; feat: Emit deprecation warnings in RuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17527&quot;&gt;#17527&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acb7df35b9a7485f26bc6b3e1f9083d1c585dce9&quot;&gt;&lt;code&gt;acb7df3&lt;/code&gt;&lt;/a&gt; feat: add new &lt;code&gt;enforce&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/lines-between-class-members&quot;&gt;&lt;code&gt;lines-between-class-members&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17462&quot;&gt;#17462&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ecfb54ff4cdd18f28b4f9b78f0a78fb4cf80f1b8&quot;&gt;&lt;code&gt;ecfb54f&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de86b3b2e58edd5826200c23255d8325abe375e1&quot;&gt;&lt;code&gt;de86b3b&lt;/code&gt;&lt;/a&gt; docs: update &lt;a href=&quot;https://eslint.org/docs/rules/no-promise-executor-return&quot;&gt;&lt;code&gt;no-promise-executor-return&lt;/code&gt;&lt;/a&gt; examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17529&quot;&gt;#17529&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/032c4b1476a7b8cfd917a66772d2221950ea87eb&quot;&gt;&lt;code&gt;032c4b1&lt;/code&gt;&lt;/a&gt; docs: add typescript template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17500&quot;&gt;#17500&lt;/a&gt;) (James)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd7da5cc3154f86f7ca45fb58929d27a7af359ed&quot;&gt;&lt;code&gt;cd7da5c&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7621c3b16cf7d5539f05336a827e1b32d95e6ac&quot;&gt;&lt;code&gt;b7621c3&lt;/code&gt;&lt;/a&gt; chore: remove browser test from &lt;code&gt;npm test&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17550&quot;&gt;#17550&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cac45d04b890b0700dd8908927300608adad05fe&quot;&gt;&lt;code&gt;cac45d0&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.49.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17549&quot;&gt;#17549&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd395082bffcb4b68efa09226d7c682cef56179e&quot;&gt;&lt;code&gt;cd39508&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/203a971c0abc3a95ae02ff74104a01e569707060&quot;&gt;&lt;code&gt;203a971&lt;/code&gt;&lt;/a&gt; ci: bump actions/checkout from 3 to 4 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17530&quot;&gt;#17530&lt;/a&gt;) (dependabot[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a40fa509922b36bb986eb1be9394591f84f62d9e&quot;&gt;&lt;code&gt;a40fa50&lt;/code&gt;&lt;/a&gt; chore: use eslint-plugin-jsdoc’s flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17516&quot;&gt;#17516&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/926a28684282aeec37680bbc52a66973b8055f54&quot;&gt;&lt;code&gt;926a286&lt;/code&gt;&lt;/a&gt; test: replace Karma with &lt;a href=&quot;http://webdriver.io/&quot;&gt;Webdriver.IO&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17126&quot;&gt;#17126&lt;/a&gt;) (Christian Bromann)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f591d2c88bf15af72e3a207b34fa872b4b90464b&quot;&gt;&lt;code&gt;f591d2c&lt;/code&gt;&lt;/a&gt; chore: Upgrade config-array (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17512&quot;&gt;#17512&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.48.0 released</title>
    <link href="https://eslint.org/blog/2023/08/eslint-v8.48.0-released/"/>
    <updated>2023-08-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/08/eslint-v8.48.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-promise-executor-return&quot;&gt;no-promise-executor-return&lt;/a&gt; rule has a new option &lt;code&gt;allowVoid&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fbb3b0b477c814c0d179564fe495f4c50a451e9&quot;&gt;&lt;code&gt;1fbb3b0&lt;/code&gt;&lt;/a&gt; feat: correct update direction in &lt;a href=&quot;https://eslint.org/docs/rules/for-direction&quot;&gt;&lt;code&gt;for-direction&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17483&quot;&gt;#17483&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d73fbf2228631d6c468cd24710e2579fe6cb70fd&quot;&gt;&lt;code&gt;d73fbf2&lt;/code&gt;&lt;/a&gt; feat: rule tester do not create empty valid or invalid test suites (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17475&quot;&gt;#17475&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee2f718188d32e9888b1932fe6b9bd2a62c529a4&quot;&gt;&lt;code&gt;ee2f718&lt;/code&gt;&lt;/a&gt; feat: Allow &lt;code&gt;void&lt;/code&gt; in rule &lt;a href=&quot;https://eslint.org/docs/rules/no-promise-executor-return&quot;&gt;&lt;code&gt;no-promise-executor-return&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17282&quot;&gt;#17282&lt;/a&gt;) (nopeless)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7234f6a706a209aa2d79259110328752e9ae3928&quot;&gt;&lt;code&gt;7234f6a&lt;/code&gt;&lt;/a&gt; fix: update RuleTester JSDoc and deprecations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17496&quot;&gt;#17496&lt;/a&gt;) (Jonas Berlin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7a51d77c0a066e461ff288568fdfee0e9539a2b5&quot;&gt;&lt;code&gt;7a51d77&lt;/code&gt;&lt;/a&gt; docs: &lt;a href=&quot;https://eslint.org/docs/rules/no-param-reassign&quot;&gt;no-param-reassign&lt;/a&gt; mention strict mode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17494&quot;&gt;#17494&lt;/a&gt;) (Stephen Hardy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9cd7ac2fdb6b1d71a9fb1b8297a478cafacbdafd&quot;&gt;&lt;code&gt;9cd7ac2&lt;/code&gt;&lt;/a&gt; docs: add &lt;code&gt;fetch&lt;/code&gt; script to package.json conventions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17459&quot;&gt;#17459&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cab21e64a8f79779c641178f825945958667c6e4&quot;&gt;&lt;code&gt;cab21e6&lt;/code&gt;&lt;/a&gt; docs: advice for inline disabling of rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17458&quot;&gt;#17458&lt;/a&gt;) (Ashish Yadav)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/056499de31a139dbc965d18652b0b520e11b408d&quot;&gt;&lt;code&gt;056499d&lt;/code&gt;&lt;/a&gt; docs: fix example of flat config from plugin (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17482&quot;&gt;#17482&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e9edf93ecfa0658e8b79e71bc98530ade150081&quot;&gt;&lt;code&gt;9e9edf9&lt;/code&gt;&lt;/a&gt; docs: update documentation URL in error message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17465&quot;&gt;#17465&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8dd3cec90c97ed97d243a83b87ad4ea9e6b4781a&quot;&gt;&lt;code&gt;8dd3cec&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.48.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17501&quot;&gt;#17501&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d0496e9476fb2210fba0a3d541df8c052ecf73a&quot;&gt;&lt;code&gt;6d0496e&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9d4216d638d39844decffac33ee3d5a47413c80a&quot;&gt;&lt;code&gt;9d4216d&lt;/code&gt;&lt;/a&gt; chore: Refactor and document CodePathSegment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17474&quot;&gt;#17474&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.47.0 released</title>
    <link href="https://eslint.org/blog/2023/08/eslint-v8.47.0-released/"/>
    <updated>2023-08-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/08/eslint-v8.47.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53d750800b1c0c1f8c29393c488bb3167bb1d2a5&quot;&gt;&lt;code&gt;53d7508&lt;/code&gt;&lt;/a&gt; feat: update regex for methods with &lt;code&gt;thisArg&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17439&quot;&gt;#17439&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/631648ee0b51a8951ce576ccd4430e09c9c8bcae&quot;&gt;&lt;code&gt;631648e&lt;/code&gt;&lt;/a&gt; fix: do not report on shadowed constructors in &lt;a href=&quot;https://eslint.org/docs/rules/no-new-wrappers&quot;&gt;&lt;code&gt;no-new-wrappers&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17447&quot;&gt;#17447&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a766a48030d4359db76523d5b413d6332130e485&quot;&gt;&lt;code&gt;a766a48&lt;/code&gt;&lt;/a&gt; docs: document lack of config file names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17442&quot;&gt;#17442&lt;/a&gt;) (James)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1635d6198a8baf6571b3351e098e5ac960be887&quot;&gt;&lt;code&gt;a1635d6&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/47a08597966651975126dd6726939cd34f13b80e&quot;&gt;&lt;code&gt;47a0859&lt;/code&gt;&lt;/a&gt; docs: update [&lt;code&gt;require-unicode-regexp](/docs/rules/require-unicode-regexp).md&lt;/code&gt; as following up &lt;a href=&quot;https://github.com/eslint/eslint/issues/17402&quot;&gt;#17402&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17441&quot;&gt;#17441&lt;/a&gt;) (SUZUKI Sosuke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fcdc85d3a6bc14970c3349cc8d6f3a47eca172a3&quot;&gt;&lt;code&gt;fcdc85d&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2a92b6cc9520a27255520369206556e9841a3af8&quot;&gt;&lt;code&gt;2a92b6c&lt;/code&gt;&lt;/a&gt; docs: update with “Specifying Parser Options” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17435&quot;&gt;#17435&lt;/a&gt;) (Cheol-Won)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d743ed3c06c62a639da0389ad27907b324ea1715&quot;&gt;&lt;code&gt;d743ed3&lt;/code&gt;&lt;/a&gt; docs: add metadata for parser/processor (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17438&quot;&gt;#17438&lt;/a&gt;) (Huáng Jùnliàng)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/224376cd99a08394291a9584ad9c1ea1283673c6&quot;&gt;&lt;code&gt;224376c&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a41a8e4a7da14726d6fce71a023f12101fd52fdb&quot;&gt;&lt;code&gt;a41a8e4&lt;/code&gt;&lt;/a&gt; docs: update script names in README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17432&quot;&gt;#17432&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf69aa6408f5403a88d8c9b71b0e58232b1ea833&quot;&gt;&lt;code&gt;bf69aa6&lt;/code&gt;&lt;/a&gt; chore: Update dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17456&quot;&gt;#17456&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e4576012ab938b880e6f27641bff55fb4313d20&quot;&gt;&lt;code&gt;0e45760&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/757bfe1c35b5ddab7042d388f8d21e834875fff5&quot;&gt;&lt;code&gt;757bfe1&lt;/code&gt;&lt;/a&gt; chore: Remove add-to-triage (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17450&quot;&gt;#17450&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b066640b7040ec30f740dcc803511244fe19473b&quot;&gt;&lt;code&gt;b066640&lt;/code&gt;&lt;/a&gt; chore: standardize npm script names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17431&quot;&gt;#17431&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6b2410f911dd2e3d915c879041c6e257d41a2f4e&quot;&gt;&lt;code&gt;6b2410f&lt;/code&gt;&lt;/a&gt; chore: Update add-to-triage.yml (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17444&quot;&gt;#17444&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.46.0 released</title>
    <link href="https://eslint.org/blog/2023/07/eslint-v8.46.0-released/"/>
    <updated>2023-07-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/07/eslint-v8.46.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;support-for-regular-expressions-v-flag&quot; tabindex=&quot;-1&quot;&gt;Support for regular expressions &lt;code&gt;v&lt;/code&gt; flag&lt;/h3&gt;
&lt;p&gt;We have updated ESLint to fully support the ECMAScript 2024 &lt;a href=&quot;https://github.com/tc39/proposal-regexp-v-flag&quot;&gt;regular expression &lt;code&gt;v&lt;/code&gt; flag&lt;/a&gt;. This flag allows more complex operations such as difference/subtraction, intersection, and nested character classes. These updates include parsing and ensuring that rules related to regular expressions are behaving as expected.&lt;/p&gt;
&lt;h3 id=&quot;better-error-messages-for-flat-config&quot; tabindex=&quot;-1&quot;&gt;Better error messages for flat config&lt;/h3&gt;
&lt;p&gt;As we continue to work on flat config, we received some feedback that the error messages were a bit difficult to understand when an eslintrc config was accidentally used. We added more explicit checking for eslintrc-style configs to output more useful error messages that include links to the relevant documentation.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8a9343871f7dade19d910ca8e2a4177bfca28b64&quot;&gt;&lt;code&gt;8a93438&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/require-unicode-regexp&quot;&gt;&lt;code&gt;require-unicode-regexp&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;v&lt;/code&gt; flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17402&quot;&gt;#17402&lt;/a&gt;) (SUZUKI Sosuke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a2f966fabe35103141d2f936180d2f1a72154db&quot;&gt;&lt;code&gt;1a2f966&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;&lt;code&gt;no-useless-escape&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;v&lt;/code&gt; flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17420&quot;&gt;#17420&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee68d1d9630892d99ae0d8dabe2f9f8d3b1338be&quot;&gt;&lt;code&gt;ee68d1d&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-empty-character-class&quot;&gt;&lt;code&gt;no-empty-character-class&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;v&lt;/code&gt; flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17419&quot;&gt;#17419&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/853d32baa8934c08b59a738470b72522e1505f6f&quot;&gt;&lt;code&gt;853d32b&lt;/code&gt;&lt;/a&gt; feat: deprecate &lt;a href=&quot;https://eslint.org/docs/rules/no-return-await&quot;&gt;no-return-await&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17417&quot;&gt;#17417&lt;/a&gt;) (Carlos Lopez)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d4f02e4bf1b9ae4e1fc8f2bc4e4851ae3c36a127&quot;&gt;&lt;code&gt;d4f02e4&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-control-regex&quot;&gt;&lt;code&gt;no-control-regex&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;v&lt;/code&gt; flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17405&quot;&gt;#17405&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2a35f3e6ed27deafbebba48b6aec570d3abf9974&quot;&gt;&lt;code&gt;2a35f3e&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-named-capture-group&quot;&gt;&lt;code&gt;prefer-named-capture-group&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;v&lt;/code&gt; flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17409&quot;&gt;#17409&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ca8b50b0425b3bad34a9505bc3095168e2f59d8&quot;&gt;&lt;code&gt;8ca8b50&lt;/code&gt;&lt;/a&gt; feat: Better error message for flat config plugins (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17399&quot;&gt;#17399&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/509f75395035822280245772e2a95732a0dde0e1&quot;&gt;&lt;code&gt;509f753&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;v&lt;/code&gt; flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17406&quot;&gt;#17406&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3caf51487decdf93a4b17765a2af2a51c337e974&quot;&gt;&lt;code&gt;3caf514&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-regex-spaces&quot;&gt;&lt;code&gt;no-regex-spaces&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;v&lt;/code&gt; flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17407&quot;&gt;#17407&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7fad2b52f23667628cf209663795a721c88d0ba&quot;&gt;&lt;code&gt;b7fad2b&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-regex-literals&quot;&gt;&lt;code&gt;prefer-regex-literals&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;v&lt;/code&gt; flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17410&quot;&gt;#17410&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a6a3ad4ae438ea7fc3a1d97cd2555f6534b565f1&quot;&gt;&lt;code&gt;a6a3ad4&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-backreference&quot;&gt;&lt;code&gt;no-useless-backreference&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;v&lt;/code&gt; flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17408&quot;&gt;#17408&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/94954a715448d5794f2892bf212fe986b43228ed&quot;&gt;&lt;code&gt;94954a7&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;&lt;code&gt;no-invalid-regexp&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;v&lt;/code&gt; flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17404&quot;&gt;#17404&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1af6eac5727080c809e37c07dc729b44ef24483c&quot;&gt;&lt;code&gt;1af6eac&lt;/code&gt;&lt;/a&gt; feat: adds option for allowing empty object patterns as parameter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17365&quot;&gt;#17365&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf03104b278fea59ef46e09f667110f5eaaf95e3&quot;&gt;&lt;code&gt;cf03104&lt;/code&gt;&lt;/a&gt; feat: Improve config error messages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17385&quot;&gt;#17385&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9803c7c04078f0672d8a480fd39cf3bbef8017e6&quot;&gt;&lt;code&gt;9803c7c&lt;/code&gt;&lt;/a&gt; fix: FlatESLint#getRulesMetaForResults shouldn’t throw on unknown rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17393&quot;&gt;#17393&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/42faa17b1c93f801b14bea2840d1d528e25c7211&quot;&gt;&lt;code&gt;42faa17&lt;/code&gt;&lt;/a&gt; fix: Update &lt;a href=&quot;https://eslint.org/docs/rules/no-loop-func&quot;&gt;no-loop-func&lt;/a&gt; to not overlap with &lt;a href=&quot;https://eslint.org/docs/rules/no-undef&quot;&gt;no-undef&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17358&quot;&gt;#17358&lt;/a&gt;) (Matt Wilkinson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d474e351ba6ce0242f18e55c27cb3ae17b84f63&quot;&gt;&lt;code&gt;4d474e3&lt;/code&gt;&lt;/a&gt; docs: update with TypeScript info (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17423&quot;&gt;#17423&lt;/a&gt;) (James)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/091f44e4c72007edb2ac6d4db4eafa5501e41e94&quot;&gt;&lt;code&gt;091f44e&lt;/code&gt;&lt;/a&gt; docs: File extension named processor deprecation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17362&quot;&gt;#17362&lt;/a&gt;) (Matt Wilkinson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9254a6cea845dfaf2f3f52f718cb9b071853aa09&quot;&gt;&lt;code&gt;9254a6c&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d6dc5141f535728029eef8735854a421bc08eba&quot;&gt;&lt;code&gt;6d6dc51&lt;/code&gt;&lt;/a&gt; docs: fix overlapping of &lt;code&gt;open in playground&lt;/code&gt; button (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17403&quot;&gt;#17403&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7fc3a2ce68979a2c2a6fc779e647b3004ab6f4ac&quot;&gt;&lt;code&gt;7fc3a2c&lt;/code&gt;&lt;/a&gt; docs: Add private class features info to &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle&quot;&gt;no-underscore-dangle&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17386&quot;&gt;#17386&lt;/a&gt;) (Matt Wilkinson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da73e583e1703a420551d8fa8f7c70b56dc88dd5&quot;&gt;&lt;code&gt;da73e58&lt;/code&gt;&lt;/a&gt; docs: Migrating &lt;code&gt;eslint-env&lt;/code&gt; configuration comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17390&quot;&gt;#17390&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/80dffed4c81dcc71fb72bc187aff2f87d141a6ed&quot;&gt;&lt;code&gt;80dffed&lt;/code&gt;&lt;/a&gt; docs: fix Ignoring Files section in config migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17392&quot;&gt;#17392&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8a9abb7cf424bd49d45c09345dc45ae95f29cc9d&quot;&gt;&lt;code&gt;8a9abb7&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7e9be4bd7331d0e8e8e0af0b075a2f6d28d1bea3&quot;&gt;&lt;code&gt;7e9be4b&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b0bbe07d4fb0870f3916e975b8ec6978f838077&quot;&gt;&lt;code&gt;0b0bbe0&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d1eb7e46e954c64af8d7d13d087b3a18f43e6d72&quot;&gt;&lt;code&gt;d1eb7e4&lt;/code&gt;&lt;/a&gt; chore: Update ecosystem dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17427&quot;&gt;#17427&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fab9e97ef9dff40e98a5b3b97bdd3b0ff5439d46&quot;&gt;&lt;code&gt;fab9e97&lt;/code&gt;&lt;/a&gt; chore: package.json update for eslint-config-eslint release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6246711e0650d03afe044c36acde048ed2d39ee3&quot;&gt;&lt;code&gt;6246711&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0aa0bc365a5425440c8e86c96104d0053a51b602&quot;&gt;&lt;code&gt;0aa0bc3&lt;/code&gt;&lt;/a&gt; chore: Add PRs to triage project (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17421&quot;&gt;#17421&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.45.0 released</title>
    <link href="https://eslint.org/blog/2023/07/eslint-v8.45.0-released/"/>
    <updated>2023-07-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/07/eslint-v8.45.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some of the important changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;exporting-of-new-legacyeslint-class&quot; tabindex=&quot;-1&quot;&gt;Exporting of new &lt;code&gt;LegacyESLint&lt;/code&gt; class&lt;/h3&gt;
&lt;p&gt;As we continue our transition to the flat config system, we’ve been working with integrators to understand how best to help them transition as well. While we provided the &lt;code&gt;FlatESLint&lt;/code&gt; class to allow integrations to start using the flat config system before it’s set to default, we discovered that our original plan (replace &lt;code&gt;ESLint&lt;/code&gt; with &lt;code&gt;FlatESLint&lt;/code&gt; in v9.0.0) would have left integrations unable to support eslintrc during the transition.&lt;/p&gt;
&lt;p&gt;To fix this, we added the &lt;code&gt;LegacyESLint&lt;/code&gt; class as an export from &lt;code&gt;/use-at-your-own-risk&lt;/code&gt;. Both &lt;code&gt;FlatESLint&lt;/code&gt; and &lt;code&gt;LegacyESLint&lt;/code&gt; will be available through the v9.0.0 lifecycle, allowing integrators to continue to support both config formats. You can use these classes like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; FlatESLint&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; LegacyESLint &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;eslint/use-at-your-own-risk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you are using the &lt;code&gt;ESLint&lt;/code&gt; class in your integration, it’s a good idea to switch that to &lt;code&gt;LegacyESLint&lt;/code&gt; to make the upgrade to v9.0.0 as smooth as possible when it is released later this year.&lt;/p&gt;
&lt;p&gt;The plan is to remove both &lt;code&gt;FlatESLint&lt;/code&gt; and &lt;code&gt;LegacyESLint&lt;/code&gt; classes in v10.0.0.&lt;/p&gt;
&lt;h3 id=&quot;new-configuration-migration-guide&quot; tabindex=&quot;-1&quot;&gt;New configuration migration guide&lt;/h3&gt;
&lt;p&gt;We’ve published a new &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/migration-guide&quot;&gt;Configuration Migration Guide&lt;/a&gt; to help you make the switch from eslintrc to flat config formats. Flat config is now considered feature complete and it’s a good time to start switching over before flat config becomes the default in v9.0.0. This guide walks you through the various sections of your eslintrc file and shows how to convert them to flat config.&lt;/p&gt;
&lt;p&gt;We’re grateful for the early adopters of the new config system who provided the feedback that makes up the core of this new guide.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cdd063c388bbfe1781d7a864a832f03a2c1cc277&quot;&gt;&lt;code&gt;cdd063c&lt;/code&gt;&lt;/a&gt; feat: Expose LegacyESLint in unsupported API (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17341&quot;&gt;#17341&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d34abe59eb23932dcbc79757d7932d08ee8b20e5&quot;&gt;&lt;code&gt;d34abe5&lt;/code&gt;&lt;/a&gt; feat: fix &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule for else-if (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17318&quot;&gt;#17318&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b79b6fb64473969b426d086b484d2e29594a5e9a&quot;&gt;&lt;code&gt;b79b6fb&lt;/code&gt;&lt;/a&gt; fix: Fix suggestion message in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;&lt;code&gt;no-useless-escape&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17339&quot;&gt;#17339&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c667055fb9da8ebac3a99f6e5a8b5565cc86af8e&quot;&gt;&lt;code&gt;c667055&lt;/code&gt;&lt;/a&gt; fix: provide unique &lt;code&gt;fix&lt;/code&gt; and &lt;code&gt;fix.range&lt;/code&gt; objects in lint messages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17332&quot;&gt;#17332&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89f3225108c66425e4132f76db6c1ab13aac98d7&quot;&gt;&lt;code&gt;89f3225&lt;/code&gt;&lt;/a&gt; docs: add playground links to correct and incorrect code blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17306&quot;&gt;#17306&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8892b52920b8967f9e7bec23c75b74e03977d6b&quot;&gt;&lt;code&gt;f8892b5&lt;/code&gt;&lt;/a&gt; docs: Expand rule option schema docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17198&quot;&gt;#17198&lt;/a&gt;) (Matt Wilkinson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8bcbf11b6050418262ffa8e0ca37f365ae92e7ce&quot;&gt;&lt;code&gt;8bcbf11&lt;/code&gt;&lt;/a&gt; docs: Config Migration Guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17230&quot;&gt;#17230&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb3090897166dbfd2931a43a70e2a5c1f3fa0a07&quot;&gt;&lt;code&gt;bb30908&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/84d243b245b01b667f0752b592e8bda02a9aa2b1&quot;&gt;&lt;code&gt;84d243b&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b762632298f20c4f81e7d01ab850c3f5e3874637&quot;&gt;&lt;code&gt;b762632&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/138c096bc9468b553dbafc0e573c6522a17a7922&quot;&gt;&lt;code&gt;138c096&lt;/code&gt;&lt;/a&gt; docs: add more &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; examples with array destructuring (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17330&quot;&gt;#17330&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fc50a89753346f4f4c786ffd20ac4cf185bb036&quot;&gt;&lt;code&gt;1fc50a8&lt;/code&gt;&lt;/a&gt; docs: &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;&lt;code&gt;max-len&lt;/code&gt;&lt;/a&gt; rule &lt;code&gt;code&lt;/code&gt; and &lt;code&gt;tabWidth&lt;/code&gt; as positional arguments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17331&quot;&gt;#17331&lt;/a&gt;) (Jesús Leganés-Combarro)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68f63d76ce785fab4f42b76f1599026eea379bf7&quot;&gt;&lt;code&gt;68f63d7&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ca9b4d29f747e9cf5c9055e85c93b3b605d57fc&quot;&gt;&lt;code&gt;5ca9b4d&lt;/code&gt;&lt;/a&gt; chore: update eslint-config-eslint exports (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17336&quot;&gt;#17336&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7bf2e86022c9e95db4ca1472fddfa2ea4edd1870&quot;&gt;&lt;code&gt;7bf2e86&lt;/code&gt;&lt;/a&gt; chore: remove unused dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17352&quot;&gt;#17352&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c6f8cd0d62e4a3c314c6860ff367490bbd05325a&quot;&gt;&lt;code&gt;c6f8cd0&lt;/code&gt;&lt;/a&gt; chore: Remove &lt;code&gt;defaultIgnores&lt;/code&gt; from FlatESLint private members (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17349&quot;&gt;#17349&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0052374035672efe9129343fc00ee51a4c288ff3&quot;&gt;&lt;code&gt;0052374&lt;/code&gt;&lt;/a&gt; chore: move jsdoc settings to eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17338&quot;&gt;#17338&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.44.0 released</title>
    <link href="https://eslint.org/blog/2023/06/eslint-v8.44.0-released/"/>
    <updated>2023-06-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/06/eslint-v8.44.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; rule has a new option &lt;code&gt;ternaryOperandBinaryExpressions&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;eslint.config.js&lt;/code&gt; &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files-new#configuration-file&quot;&gt;configuration files&lt;/a&gt; can now also export a promise that resolves to the configuration array. This can be useful for using ESM dependencies in CommonJS configuration files.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;context.parserServices&lt;/code&gt; property is now deprecated in favor of &lt;a href=&quot;https://eslint.org/docs/latest/extend/custom-rules#accessing-the-source-code&quot;&gt;&lt;code&gt;SourceCode#parserServices&lt;/code&gt;&lt;/a&gt;. This change is part of the &lt;a href=&quot;https://github.com/eslint/eslint/issues/16999&quot;&gt;implementation of language plugins&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;ESLint’s default parser &lt;code&gt;espree&lt;/code&gt; now supports &lt;a href=&quot;https://github.com/tc39/proposal-regexp-v-flag&quot;&gt;RegExp &lt;code&gt;v&lt;/code&gt; flag with set notation + properties of strings&lt;/a&gt; ES2024 syntax. Please note that the core rules have not yet been updated to support this syntax.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/176677180a4a1209fc192771521c9192e1f67578&quot;&gt;&lt;code&gt;1766771&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;es2023&lt;/code&gt; and &lt;code&gt;es2024&lt;/code&gt; environments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17328&quot;&gt;#17328&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c5040022639ae804c15b366afc6e64982bd8ae3&quot;&gt;&lt;code&gt;4c50400&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;ecmaVersion: 2024&lt;/code&gt;, regexp &lt;code&gt;v&lt;/code&gt; flag parsing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17324&quot;&gt;#17324&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d411e4c7063274d6d346f1b7ee46f7575d0bbd2&quot;&gt;&lt;code&gt;4d411e4&lt;/code&gt;&lt;/a&gt; feat: add ternaryOperandBinaryExpressions option to &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17270&quot;&gt;#17270&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c8b1f4d61a256727755d561bf53f889b6cd712e0&quot;&gt;&lt;code&gt;c8b1f4d&lt;/code&gt;&lt;/a&gt; feat: Move &lt;code&gt;parserServices&lt;/code&gt; to &lt;code&gt;SourceCode&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17311&quot;&gt;#17311&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ef6e24e42670f321d996948623846d9caaedac99&quot;&gt;&lt;code&gt;ef6e24e&lt;/code&gt;&lt;/a&gt; feat: treat unknown nodes as having the lowest precedence (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17302&quot;&gt;#17302&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1866e1df6175e4ba0ae4a0d88dc3c956bb310035&quot;&gt;&lt;code&gt;1866e1d&lt;/code&gt;&lt;/a&gt; feat: allow flat config files to export a Promise (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17301&quot;&gt;#17301&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a36bcb67f26be42c794797d0cc9948b9cfd4ff71&quot;&gt;&lt;code&gt;a36bcb6&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; false positive with logical assignment operators (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17320&quot;&gt;#17320&lt;/a&gt;) (Gweesin Chan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7620b891e81c234f30f9dbcceb64a05fd0dde65e&quot;&gt;&lt;code&gt;7620b89&lt;/code&gt;&lt;/a&gt; fix: Remove &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-labels&quot;&gt;&lt;code&gt;no-unused-labels&lt;/code&gt;&lt;/a&gt; autofix before potential directives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17314&quot;&gt;#17314&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/391ed38b09bd1a3abe85db65b8fcda980ab3d6f4&quot;&gt;&lt;code&gt;391ed38&lt;/code&gt;&lt;/a&gt; fix: Remove &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-semi&quot;&gt;&lt;code&gt;no-extra-semi&lt;/code&gt;&lt;/a&gt; autofix before potential directives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17297&quot;&gt;#17297&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/526e91106e6fe101578e9478a9d7f4844d4f72ac&quot;&gt;&lt;code&gt;526e911&lt;/code&gt;&lt;/a&gt; docs: resubmit pr 17115 doc changes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17291&quot;&gt;#17291&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1314bf85a52bb0d05b1c9ca3b4c1732bae22172&quot;&gt;&lt;code&gt;e1314bf&lt;/code&gt;&lt;/a&gt; docs: Integration section and tutorial (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17132&quot;&gt;#17132&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19a8c5d84596a9f7f2aa428c1696ba86daf854e6&quot;&gt;&lt;code&gt;19a8c5d&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/49e46edf3c8dc71d691a97fc33b63ed80ae0db0c&quot;&gt;&lt;code&gt;49e46ed&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.44.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17329&quot;&gt;#17329&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1cb6421f9d185901cd99e5f696e912226ef6632&quot;&gt;&lt;code&gt;a1cb642&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/840a26462bbf6c27c52c01b85ee2018062157951&quot;&gt;&lt;code&gt;840a264&lt;/code&gt;&lt;/a&gt; test: More test cases for &lt;a href=&quot;https://eslint.org/docs/rules/no-case-declarations&quot;&gt;no-case-declarations&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17315&quot;&gt;#17315&lt;/a&gt;) (Elian Cordoba)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6e74f9eef0448129dd4775628aba554a2d8c8c9&quot;&gt;&lt;code&gt;e6e74f9&lt;/code&gt;&lt;/a&gt; chore: package.json update for eslint-config-eslint release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb3d7946e1e9f70254008744dba2397aaa730114&quot;&gt;&lt;code&gt;eb3d794&lt;/code&gt;&lt;/a&gt; chore: upgrade semver@7.5.3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17323&quot;&gt;#17323&lt;/a&gt;) (Ziyad El Abid)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf884390ad8071d88eae05df9321100f1770363d&quot;&gt;&lt;code&gt;cf88439&lt;/code&gt;&lt;/a&gt; chore: upgrade optionator@0.9.3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17319&quot;&gt;#17319&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9718a9781d69d2c40b68c631aed97700b32c0082&quot;&gt;&lt;code&gt;9718a97&lt;/code&gt;&lt;/a&gt; refactor: remove unnecessary code in &lt;code&gt;flat-eslint.js&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17308&quot;&gt;#17308&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f82e56e9acfb9562ece76441472d5657d7d5e296&quot;&gt;&lt;code&gt;f82e56e&lt;/code&gt;&lt;/a&gt; perf: various performance improvements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17135&quot;&gt;#17135&lt;/a&gt;) (moonlightaria)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da81e66e22b4f3d3fe292cf70c388753304deaad&quot;&gt;&lt;code&gt;da81e66&lt;/code&gt;&lt;/a&gt; chore: update eslint-plugin-jsdoc to 46.2.5 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17245&quot;&gt;#17245&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b991640176d5dce4750f7cc71c56cd6f284c882f&quot;&gt;&lt;code&gt;b991640&lt;/code&gt;&lt;/a&gt; chore: switch eslint-config-eslint to the flat format (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17247&quot;&gt;#17247&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.43.0 released</title>
    <link href="https://eslint.org/blog/2023/06/eslint-v8.43.0-released/"/>
    <updated>2023-06-16T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/06/eslint-v8.43.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt; rule has a new option &lt;code&gt;skipJSXText&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The ESLint documentation site now provides a &lt;a href=&quot;https://eslint.org/docs/latest/extend/custom-rule-tutorial&quot;&gt;Custom Rule Tutorial&lt;/a&gt; with step-by-step instructions on how to create and use a custom rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14581ff15aaee5a55c46bbf4983818ddc8dd7cb1&quot;&gt;&lt;code&gt;14581ff&lt;/code&gt;&lt;/a&gt; feat: directive prologue detection and autofix condition in &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;&lt;code&gt;quotes&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17284&quot;&gt;#17284&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e50fac3f8f998f729e3080e256066db3a7827c67&quot;&gt;&lt;code&gt;e50fac3&lt;/code&gt;&lt;/a&gt; feat: add declaration loc to message in &lt;a href=&quot;https://eslint.org/docs/rules/block-scoped-var&quot;&gt;block-scoped-var&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17252&quot;&gt;#17252&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b7faf0702b1af86b6a0ddafc37cf45d60f5d4d8&quot;&gt;&lt;code&gt;1b7faf0&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;skipJSXText&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;&lt;code&gt;no-irregular-whitespace&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17182&quot;&gt;#17182&lt;/a&gt;) (Azat S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/030a82737f51563f9a7b4985fc91b6d8eab54fce&quot;&gt;&lt;code&gt;030a827&lt;/code&gt;&lt;/a&gt; Revert “feat: docs license (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17010&quot;&gt;#17010&lt;/a&gt;)” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17231&quot;&gt;#17231&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5338b56fda7f47d16bdb23514f1e95b24de7b92f&quot;&gt;&lt;code&gt;5338b56&lt;/code&gt;&lt;/a&gt; fix: normalize &lt;code&gt;cwd&lt;/code&gt; passed to &lt;code&gt;ESLint&lt;/code&gt;/&lt;code&gt;FlatESLint&lt;/code&gt; constructor (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17277&quot;&gt;#17277&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54383e69b092ef537d59a1f7799a85b1412f4e59&quot;&gt;&lt;code&gt;54383e6&lt;/code&gt;&lt;/a&gt; fix: Remove &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;&lt;code&gt;no-extra-parens&lt;/code&gt;&lt;/a&gt; autofix for potential directives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17022&quot;&gt;#17022&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b855ea058992d5446d1d6dc6394ee683c3200a0&quot;&gt;&lt;code&gt;8b855ea&lt;/code&gt;&lt;/a&gt; docs: resubmit pr17061 doc changes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17292&quot;&gt;#17292&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/372722eac32ca9e3f31cf0d0bc10317c6f153369&quot;&gt;&lt;code&gt;372722e&lt;/code&gt;&lt;/a&gt; docs: resubmit pr17012 doc changes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17293&quot;&gt;#17293&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67e7af3fdbdb4648b747dfd669be4decfe24086a&quot;&gt;&lt;code&gt;67e7af3&lt;/code&gt;&lt;/a&gt; docs: resubmit custom-rules doc changes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17294&quot;&gt;#17294&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e3d77cba65d0e38e07996e57961fb04f30d9303&quot;&gt;&lt;code&gt;9e3d77c&lt;/code&gt;&lt;/a&gt; docs: Resubmit Fix formatting in Custom Rules docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17281&quot;&gt;#17281&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/503647a0b94ca8c776d7e7e8c54c8b1d32904467&quot;&gt;&lt;code&gt;503647a&lt;/code&gt;&lt;/a&gt; docs: Resubmit markVariableAsUsed docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17280&quot;&gt;#17280&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0cf0d86d985ed2b2f901dd9aab5ccd2fff062ad&quot;&gt;&lt;code&gt;e0cf0d8&lt;/code&gt;&lt;/a&gt; docs: Custom rule &amp;amp; plugin tutorial (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17024&quot;&gt;#17024&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e51ea943c2fcd05bd8917cfa89e36b91209c7cd&quot;&gt;&lt;code&gt;8e51ea9&lt;/code&gt;&lt;/a&gt; docs: resubmit &lt;a href=&quot;https://eslint.org/docs/rules/no-new&quot;&gt;&lt;code&gt;no-new&lt;/code&gt;&lt;/a&gt; rule documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17264&quot;&gt;#17264&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b217f8de15961fd3c80389621080132f517a0fb&quot;&gt;&lt;code&gt;1b217f8&lt;/code&gt;&lt;/a&gt; docs: resubmit &lt;code&gt;Custom Processors&lt;/code&gt; documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17265&quot;&gt;#17265&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/428fc76806dea1ac82484d628261a5385f928e6a&quot;&gt;&lt;code&gt;428fc76&lt;/code&gt;&lt;/a&gt; docs: resubmit &lt;code&gt;Create Plugins&lt;/code&gt; documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17268&quot;&gt;#17268&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bdca88cf4f8b7888cb72197bfe9c1d90b490a0dd&quot;&gt;&lt;code&gt;bdca88c&lt;/code&gt;&lt;/a&gt; docs: resubmit &lt;code&gt;Configuration Files&lt;/code&gt; documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17267&quot;&gt;#17267&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5c01f281ad288b1a0ebddbf579230ae11587c6c&quot;&gt;&lt;code&gt;f5c01f2&lt;/code&gt;&lt;/a&gt; docs: resubmit &lt;code&gt;Manage Issues&lt;/code&gt; documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17266&quot;&gt;#17266&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1992954591a3f4d8417013f52739b5fef4e0cd7&quot;&gt;&lt;code&gt;b199295&lt;/code&gt;&lt;/a&gt; docs: Resubmit custom rules update docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17273&quot;&gt;#17273&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e9980c3a8a1e554fdb377305c0ebe9e94a354c9&quot;&gt;&lt;code&gt;0e9980c&lt;/code&gt;&lt;/a&gt; docs: add new &lt;code&gt;omitLastInOneLineClassBody&lt;/code&gt; option to the &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;&lt;code&gt;semi&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17263&quot;&gt;#17263&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb2560f7a393e74b761faa9adad938fb1deb947d&quot;&gt;&lt;code&gt;cb2560f&lt;/code&gt;&lt;/a&gt; docs: Resubmit getScope/getDeclaredVariables docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17262&quot;&gt;#17262&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85d2b30bc318c1355e52ebb21c56cca32f0ab198&quot;&gt;&lt;code&gt;85d2b30&lt;/code&gt;&lt;/a&gt; docs: explain how to include predefined globals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17261&quot;&gt;#17261&lt;/a&gt;) (Marcus Wyatt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de4d3c14c30a88795b9075d59827d3fe63a42c5e&quot;&gt;&lt;code&gt;de4d3c1&lt;/code&gt;&lt;/a&gt; docs: update flat config default ignore patterns (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17258&quot;&gt;#17258&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3912f3a225c12bfb5ce9b7ba26c2b5301e6275bd&quot;&gt;&lt;code&gt;3912f3a&lt;/code&gt;&lt;/a&gt; docs: Improve &lt;code&gt;ignores&lt;/code&gt; documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17239&quot;&gt;#17239&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/35e11d3248e00b711fd652836edc900f22af0ebd&quot;&gt;&lt;code&gt;35e11d3&lt;/code&gt;&lt;/a&gt; docs: fix typos and missing info (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17257&quot;&gt;#17257&lt;/a&gt;) (Ed Lucas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0bc257c290b12fcda85cb61b40d55fc2be0f938c&quot;&gt;&lt;code&gt;0bc257c&lt;/code&gt;&lt;/a&gt; docs: Clarify &lt;a href=&quot;https://eslint.org/docs/rules/no-div-regex&quot;&gt;&lt;code&gt;no-div-regex&lt;/code&gt;&lt;/a&gt; rule docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17051&quot;&gt;#17051&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17255&quot;&gt;#17255&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/788d83629a3790a7db6f52dcf0b4bddf51c6d063&quot;&gt;&lt;code&gt;788d836&lt;/code&gt;&lt;/a&gt; docs: add references to MIT License (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17248&quot;&gt;#17248&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58aab6b6c09996875418aefeeb0fd76c50caef7a&quot;&gt;&lt;code&gt;58aab6b&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ef58140550cf8ff34af35fc4d9a1f9a124fe0e6&quot;&gt;&lt;code&gt;3ef5814&lt;/code&gt;&lt;/a&gt; docs: Revert all changes after the license change (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17227&quot;&gt;#17227&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03fc4aa847bd0445e7b3ea81bcc9523b1847facc&quot;&gt;&lt;code&gt;03fc4aa&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78350f63045c82b7990bb7bfe5080c5ad5e1c3f5&quot;&gt;&lt;code&gt;78350f6&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.43.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17295&quot;&gt;#17295&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62bf759124811b013ad7906c2536deb8b39c31a8&quot;&gt;&lt;code&gt;62bf759&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0a2448e0c0ef354e69998858846630a3fce8ebe&quot;&gt;&lt;code&gt;e0a2448&lt;/code&gt;&lt;/a&gt; chore: docs package.license ISC =&amp;gt; MIT (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17254&quot;&gt;#17254&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a0196c51310630a0ff96a1e8d7f257c2c7adda9&quot;&gt;&lt;code&gt;6a0196c&lt;/code&gt;&lt;/a&gt; chore: use eslint-plugin-eslint-plugin flat configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17204&quot;&gt;#17204&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.42.0 released</title>
    <link href="https://eslint.org/blog/2023/06/eslint-v8.42.0-released/"/>
    <updated>2023-06-02T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/06/eslint-v8.42.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8448ff1ae1adf26a81dea07f340caa5b5c2f257&quot;&gt;&lt;code&gt;b8448ff&lt;/code&gt;&lt;/a&gt; feat: correct &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-return&quot;&gt;no-useless-return&lt;/a&gt; behaviour in try statements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16996&quot;&gt;#16996&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a5896360c3faa1e7d1fe81a9907a434b8b8f6b60&quot;&gt;&lt;code&gt;a589636&lt;/code&gt;&lt;/a&gt; fix: Config with &lt;code&gt;ignores&lt;/code&gt; and without &lt;code&gt;files&lt;/code&gt; should not always apply (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17181&quot;&gt;#17181&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4fad173c7149dbcd25695c19c68663102b9ec6b&quot;&gt;&lt;code&gt;c4fad17&lt;/code&gt;&lt;/a&gt; fix: Correct ignore message for “node_modules” subfolders (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17217&quot;&gt;#17217&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/01d7142642c87241135699571e8010f5e8fcda4f&quot;&gt;&lt;code&gt;01d7142&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5182b723ff82bb3b55c50c06d64626055414b31&quot;&gt;&lt;code&gt;e5182b7&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ca5b7ca3bac9e10c6cfee4cdc78446e94eb7607&quot;&gt;&lt;code&gt;6ca5b7c&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.42.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17236&quot;&gt;#17236&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67fc5e730e4dfc372dea11e15d3f5165bc812491&quot;&gt;&lt;code&gt;67fc5e7&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0892412556b2ba6c3d1b85152dafe47a3f4cba72&quot;&gt;&lt;code&gt;0892412&lt;/code&gt;&lt;/a&gt; refactor: remove &lt;code&gt;Identifier&lt;/code&gt; listener in &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17235&quot;&gt;#17235&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f67d2984c3c3f26497842a04d5166707587c1fca&quot;&gt;&lt;code&gt;f67d298&lt;/code&gt;&lt;/a&gt; test: Add &lt;code&gt;FlatESLint&lt;/code&gt; tests with missing config files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17164&quot;&gt;#17164&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b68d51e3e6bd003d6cf74d3434f7165691b4f4d&quot;&gt;&lt;code&gt;5b68d51&lt;/code&gt;&lt;/a&gt; chore: Fix &lt;code&gt;fixedsize&lt;/code&gt; attribute in code path analysis DOT debug output (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17202&quot;&gt;#17202&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/37432f27dc15817d66cf42377792197dc2aeb8b2&quot;&gt;&lt;code&gt;37432f2&lt;/code&gt;&lt;/a&gt; chore: update descriptions in &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;key-spacing&lt;/a&gt; tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17195&quot;&gt;#17195&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.41.0 released</title>
    <link href="https://eslint.org/blog/2023/05/eslint-v8.41.0-released/"/>
    <updated>2023-05-19T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/05/eslint-v8.41.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Integrations can now use the new function &lt;code&gt;shouldUseFlatConfig()&lt;/code&gt; to determine whether to use the &lt;code&gt;FlatESLint&lt;/code&gt; class instead of the &lt;code&gt;ESLint&lt;/code&gt; class.&lt;/li&gt;
&lt;li&gt;The performance of the &lt;code&gt;indent&lt;/code&gt; rule has been significantly improved.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/880a4317b949e575a4a6c5e8baaba1eea7674cc6&quot;&gt;&lt;code&gt;880a431&lt;/code&gt;&lt;/a&gt; feat: change default ignore pattern to &lt;code&gt;**/node_modules/&lt;/code&gt; in flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17184&quot;&gt;#17184&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8bf550594fca6d29fab1a3453e701c1a457767e1&quot;&gt;&lt;code&gt;8bf5505&lt;/code&gt;&lt;/a&gt; feat: expose &lt;code&gt;shouldUseFlatConfig&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17169&quot;&gt;#17169&lt;/a&gt;) (Connor Prussin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f5440db631707b17140c4e5cc7beb223afbd2b9&quot;&gt;&lt;code&gt;4f5440d&lt;/code&gt;&lt;/a&gt; fix: incorrect warning message for ignored dotfiles (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17196&quot;&gt;#17196&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/94da96cbf0fb2bb6694fa2e757eb1b3e74c40db7&quot;&gt;&lt;code&gt;94da96c&lt;/code&gt;&lt;/a&gt; fix: unify &lt;code&gt;LintMessage&lt;/code&gt; type (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17076&quot;&gt;#17076&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c415cda5d76dbe5120ab9f3c4c81320538e35f0&quot;&gt;&lt;code&gt;0c415cd&lt;/code&gt;&lt;/a&gt; fix: validate &lt;code&gt;ignorePatterns&lt;/code&gt; constructor option in &lt;code&gt;FlatESLint&lt;/code&gt; class (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17139&quot;&gt;#17139&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9682d669e4ee8641293914e21679f40fee8bc354&quot;&gt;&lt;code&gt;9682d66&lt;/code&gt;&lt;/a&gt; fix: switch &lt;code&gt;grapheme-splitter&lt;/code&gt; to &lt;code&gt;graphemer&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17160&quot;&gt;#17160&lt;/a&gt;) (fisker Cheung)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7709b14e18ad4e11c1119ed6575454243b8e7084&quot;&gt;&lt;code&gt;7709b14&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f183e020579380fa57473caaf9ed154470c25b3&quot;&gt;&lt;code&gt;7f183e0&lt;/code&gt;&lt;/a&gt; docs: Update triage process description (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17157&quot;&gt;#17157&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b68346b290d55324e73868ca42b3854157b27375&quot;&gt;&lt;code&gt;b68346b&lt;/code&gt;&lt;/a&gt; docs: fix license to reflect relicensing of jshint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17165&quot;&gt;#17165&lt;/a&gt;) (Stefan Bischof)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f43216a8c77ab6cf1d0823978e8c728786b4cba7&quot;&gt;&lt;code&gt;f43216a&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.41.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17200&quot;&gt;#17200&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95c300780a1cfd9ad680bc78850542eb55d7fbf4&quot;&gt;&lt;code&gt;95c3007&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ddc5291debd90ff476e17c532af7577e26720b91&quot;&gt;&lt;code&gt;ddc5291&lt;/code&gt;&lt;/a&gt; chore: don’t use deprecated &lt;code&gt;context&lt;/code&gt; methods in &lt;code&gt;ast-utils&lt;/code&gt; tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17194&quot;&gt;#17194&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1516db51514032ed06e1425c4b1f955238dc682&quot;&gt;&lt;code&gt;b1516db&lt;/code&gt;&lt;/a&gt; chore: Fix return type of &lt;code&gt;findFlatConfigFile&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17161&quot;&gt;#17161&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/918b0fd21723e84bd7acb17942a36606f1d8360a&quot;&gt;&lt;code&gt;918b0fd&lt;/code&gt;&lt;/a&gt; perf: Store &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; descriptors in a plain array (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17148&quot;&gt;#17148&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4caa34449555d8a680222ec2049d97c59476c11e&quot;&gt;&lt;code&gt;4caa344&lt;/code&gt;&lt;/a&gt; refactor: locateConfigFileToUse returns an Error object (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17159&quot;&gt;#17159&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.40.0 released</title>
    <link href="https://eslint.org/blog/2023/05/eslint-v8.40.0-released/"/>
    <updated>2023-05-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/05/eslint-v8.40.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rules can now use properties &lt;code&gt;context.sourceCode&lt;/code&gt;, &lt;code&gt;context.cwd&lt;/code&gt;, &lt;code&gt;context.filename&lt;/code&gt;, and &lt;code&gt;context.physicalFilename&lt;/code&gt; instead of methods &lt;code&gt;context.getSourceCode()&lt;/code&gt;, &lt;code&gt;context.getCwd()&lt;/code&gt;, &lt;code&gt;context.getFilename()&lt;/code&gt;, and &lt;code&gt;context.getPhysicalFilename()&lt;/code&gt; respectively. The methods are now considered deprecated.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;FlatESLint&lt;/code&gt; class has a new method &lt;code&gt;findConfigFile()&lt;/code&gt;. It returns the path to the config file being used by the instance or &lt;code&gt;undefined&lt;/code&gt; if no config file is being used.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/semi&quot;&gt;semi&lt;/a&gt; rule has a new option &lt;code&gt;omitLastInOneLineClassBody&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5db7808139c1f2172797285a0700f01644bda254&quot;&gt;&lt;code&gt;5db7808&lt;/code&gt;&lt;/a&gt; feat: improve flat config errors for invalid rule options and severities (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17140&quot;&gt;#17140&lt;/a&gt;) (Josh Goldberg ✨)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5574dc739fcc74a7841217ba1f31cce02bee1ff&quot;&gt;&lt;code&gt;f5574dc&lt;/code&gt;&lt;/a&gt; feat: Add findConfigFile() method to FlatESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17142&quot;&gt;#17142&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e52b98bf25d882da4efd5559ce5974b6697cf701&quot;&gt;&lt;code&gt;e52b98b&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;sourceCode&lt;/code&gt; property to the rule context (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17107&quot;&gt;#17107&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1468f5b640cfa6fdd8a5ec895337f692def2780b&quot;&gt;&lt;code&gt;1468f5b&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;physicalFilename&lt;/code&gt; property to the rule context (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17111&quot;&gt;#17111&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0df4d4f658c214e51310a986c03d44d34ceae3ec&quot;&gt;&lt;code&gt;0df4d4f&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;cwd&lt;/code&gt; to rule context (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17106&quot;&gt;#17106&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52018f21c19b3e461cae32843cddd17ed42f19cd&quot;&gt;&lt;code&gt;52018f2&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;filename&lt;/code&gt; property to the rule context (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17108&quot;&gt;#17108&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/559ff4e4bc54a8b6e6b54825d83c532d724204b3&quot;&gt;&lt;code&gt;559ff4e&lt;/code&gt;&lt;/a&gt; feat: add new &lt;code&gt;omitLastInOneLineClassBody&lt;/code&gt; option to the &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;&lt;code&gt;semi&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17105&quot;&gt;#17105&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f076e54ecdb0fae70d9b43ad6888606097beef97&quot;&gt;&lt;code&gt;f076e54&lt;/code&gt;&lt;/a&gt; fix: Ensure FlatESLint#findConfigFile() doesn’t throw. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17151&quot;&gt;#17151&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e980bf38cf441f2eb29c458b93df77dc0111b391&quot;&gt;&lt;code&gt;e980bf3&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e92a6fc7ed2a427f5e95f4b3a1c21d71553c97ee&quot;&gt;&lt;code&gt;e92a6fc&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af5fe64c398c9bd4206c3c6c1ade81768b291031&quot;&gt;&lt;code&gt;af5fe64&lt;/code&gt;&lt;/a&gt; docs: Fix custom rule schema docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17115&quot;&gt;#17115&lt;/a&gt;) (Adam Jones)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4a352a957ba9e721bec9f6f403b419a22b0ec423&quot;&gt;&lt;code&gt;4a352a9&lt;/code&gt;&lt;/a&gt; docs: explain how to include predefined globals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17114&quot;&gt;#17114&lt;/a&gt;) (Marcus Wyatt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ea15d92ee358e8f3f652c94c019cac96aaec651&quot;&gt;&lt;code&gt;5ea15d9&lt;/code&gt;&lt;/a&gt; docs: add mastodon link in readme (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17110&quot;&gt;#17110&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4053004c951813473d1c43f9f9959a9a3484242f&quot;&gt;&lt;code&gt;4053004&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.40.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17156&quot;&gt;#17156&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/50fed1da4449ad7ecbb558294438273cfce603d4&quot;&gt;&lt;code&gt;50fed1d&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c7a170b04c5a746e401bef7ce79766ff66a1168&quot;&gt;&lt;code&gt;4c7a170&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@2.0.3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17155&quot;&gt;#17155&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e80b7cce640b60c00802148dbb51d03c7223afa9&quot;&gt;&lt;code&gt;e80b7cc&lt;/code&gt;&lt;/a&gt; chore: upgrade espree@9.5.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17154&quot;&gt;#17154&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce3ac91b510576e2afba1657aa5f09e162b4ab07&quot;&gt;&lt;code&gt;ce3ac91&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-visitor-keys@3.4.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17153&quot;&gt;#17153&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9094d79fb42c0ebb6100426a3f2f851e8d42a0ee&quot;&gt;&lt;code&gt;9094d79&lt;/code&gt;&lt;/a&gt; chore: add &lt;code&gt;latest/&lt;/code&gt; to &lt;code&gt;meta.docs.url&lt;/code&gt; in all core rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17136&quot;&gt;#17136&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d85efad655deacc0dc3fdbbace33307094c3b91b&quot;&gt;&lt;code&gt;d85efad&lt;/code&gt;&lt;/a&gt; perf: don’t use &lt;code&gt;grapheme-splitter&lt;/code&gt; on ASCII strings in &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;key-spacing&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17122&quot;&gt;#17122&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.39.0 released</title>
    <link href="https://eslint.org/blog/2023/04/eslint-v8.39.0-released/"/>
    <updated>2023-04-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/04/eslint-v8.39.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Performance of &lt;code&gt;SourceCode&lt;/code&gt; methods that search for comments has been improved following recommendations from &lt;a href=&quot;https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-3/&quot;&gt;a blog post&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/marvinhagemeist&quot;&gt;Marvin Hagemeister&lt;/a&gt;. For example, our tests showed that this change reduces linting time for &lt;code&gt;eslint-plugin-jsdoc&lt;/code&gt; rules by 6~11%.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;context.markVariableAsUsed(name)&lt;/code&gt; method is now deprecated in favor of &lt;a href=&quot;https://eslint.org/docs/latest/extend/custom-rules#marking-variables-as-used&quot;&gt;&lt;code&gt;SourceCode#markVariableAsUsed(name, node)&lt;/code&gt;&lt;/a&gt;. This change is part of the &lt;a href=&quot;https://github.com/eslint/eslint/issues/16999&quot;&gt;implementation of language plugins&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3f7af9f408625dbc486af914706d34c4b483b5ba&quot;&gt;&lt;code&gt;3f7af9f&lt;/code&gt;&lt;/a&gt; feat: Implement &lt;code&gt;SourceCode#markVariableAsUsed()&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17086&quot;&gt;#17086&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6987dc59e46f4e345d0d6c20c1f2c6846bbd7acc&quot;&gt;&lt;code&gt;6987dc5&lt;/code&gt;&lt;/a&gt; docs: Fix formatting in Custom Rules docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17097&quot;&gt;#17097&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4ee92e5cbdeba6fea2147901ce926de16946958a&quot;&gt;&lt;code&gt;4ee92e5&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d8e9887c2c384d24d586d08ee9ae2ada79bd234c&quot;&gt;&lt;code&gt;d8e9887&lt;/code&gt;&lt;/a&gt; docs: Custom Rules cleanup/expansion (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16906&quot;&gt;#16906&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fea2797801a82a2718814c83dad641dab092bcc&quot;&gt;&lt;code&gt;1fea279&lt;/code&gt;&lt;/a&gt; docs: Clarify how to add to tsc agenda (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17084&quot;&gt;#17084&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/970ef1c868235a58297682513842f1256cdfbd03&quot;&gt;&lt;code&gt;970ef1c&lt;/code&gt;&lt;/a&gt; docs: Update triage board location (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d8bffdf45d50e272dc45e6d2d05b4a737514468&quot;&gt;&lt;code&gt;6d8bffd&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60a6f2694deb4aa1c54de2a28d0357cddfd16644&quot;&gt;&lt;code&gt;60a6f26&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.39.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17102&quot;&gt;#17102&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d5ba5c0a85e7a10777761f5d46c104ab7f25845b&quot;&gt;&lt;code&gt;d5ba5c0&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f57eff20f5789408e95061f1af5354bb9b4f4784&quot;&gt;&lt;code&gt;f57eff2&lt;/code&gt;&lt;/a&gt; ci: run tests on Node.js v20 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17093&quot;&gt;#17093&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9d1b8fc60cc31f12618e58c10a2669506b7ce9bf&quot;&gt;&lt;code&gt;9d1b8fc&lt;/code&gt;&lt;/a&gt; perf: Binary search in token store &lt;code&gt;utils.search&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17066&quot;&gt;#17066&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/07a4435a0c08cb63ebf11b71f735bac20318829b&quot;&gt;&lt;code&gt;07a4435&lt;/code&gt;&lt;/a&gt; chore: Add request for minimal repro to bug report (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17081&quot;&gt;#17081&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eac4943ba2e4edb3dbfea0470e5d4b15a4926c40&quot;&gt;&lt;code&gt;eac4943&lt;/code&gt;&lt;/a&gt; refactor: remove unnecessary use of &lt;code&gt;SourceCode#getAncestors&lt;/code&gt; in rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17075&quot;&gt;#17075&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a7b60a9d5621dbbc1a8a8adda3b7c2060c779ca&quot;&gt;&lt;code&gt;0a7b60a&lt;/code&gt;&lt;/a&gt; chore: update description of &lt;code&gt;SourceCode#getDeclaredVariables&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17072&quot;&gt;#17072&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e2df71cc390252aaca212abe3dc0467fe397450&quot;&gt;&lt;code&gt;6e2df71&lt;/code&gt;&lt;/a&gt; chore: remove unnecessary references to the LICENSE file (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17071&quot;&gt;#17071&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.38.0 released</title>
    <link href="https://eslint.org/blog/2023/04/eslint-v8.38.0-released/"/>
    <updated>2023-04-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/04/eslint-v8.38.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rules can now use &lt;code&gt;SourceCode#getDeclaredVariables(node)&lt;/code&gt; and &lt;code&gt;SourceCode#getAncestors(node)&lt;/code&gt; methods. These methods work the same as &lt;code&gt;context.getDeclaredVariables(node)&lt;/code&gt; and  &lt;code&gt;context.getAncestors()&lt;/code&gt; respectively, except that &lt;code&gt;SourceCode#getAncestors&lt;/code&gt; isn’t limited to the currently traversed node and the &lt;code&gt;node&lt;/code&gt; argument is mandatory. &lt;code&gt;context.getDeclaredVariables&lt;/code&gt; and &lt;code&gt;context.getAncestors&lt;/code&gt; are now considered deprecated in favor of the &lt;code&gt;SourceCode&lt;/code&gt; methods. This change is part of the &lt;a href=&quot;https://github.com/eslint/eslint/issues/16999&quot;&gt;implementation of language plugins&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1d561d18ed653b56bddbfb1bab1ebe957293563&quot;&gt;&lt;code&gt;a1d561d&lt;/code&gt;&lt;/a&gt; feat: Move getDeclaredVariables and getAncestors to SourceCode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17059&quot;&gt;#17059&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c1ece26d1da61e523b83dda25353ec9379eb6c9&quot;&gt;&lt;code&gt;1c1ece2&lt;/code&gt;&lt;/a&gt; fix: do not report on &lt;code&gt;RegExp(...args)&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/require-unicode-regexp&quot;&gt;&lt;code&gt;require-unicode-regexp&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17037&quot;&gt;#17037&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7162d34df9a66c817c3bd4aafd3a03d226b58dd5&quot;&gt;&lt;code&gt;7162d34&lt;/code&gt;&lt;/a&gt; docs: Mention new config system is complete (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17068&quot;&gt;#17068&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0fd6bb213ad2de77543c936eda21501653182e52&quot;&gt;&lt;code&gt;0fd6bb2&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c83531c1a6026675f36aa9e33fef14458043974a&quot;&gt;&lt;code&gt;c83531c&lt;/code&gt;&lt;/a&gt; docs: Update/remove external links, eg. point to &lt;code&gt;eslint-community&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17061&quot;&gt;#17061&lt;/a&gt;) (Pelle Wessman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a3aa6f5f146534ed7999ebf8930c524a4871ec0b&quot;&gt;&lt;code&gt;a3aa6f5&lt;/code&gt;&lt;/a&gt; docs: Clarify &lt;a href=&quot;https://eslint.org/docs/rules/no-div-regex&quot;&gt;&lt;code&gt;no-div-regex&lt;/code&gt;&lt;/a&gt; rule docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17051&quot;&gt;#17051&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0f11cf977a4180bf7c3042e7faeaaa067ffafd0&quot;&gt;&lt;code&gt;b0f11cf&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da8d52a9d4edd9b2016cd4a15cd78f1ddadf20c7&quot;&gt;&lt;code&gt;da8d52a&lt;/code&gt;&lt;/a&gt; docs: Update the second object instance for the “&lt;a href=&quot;https://eslint.org/docs/rules/no-new&quot;&gt;no-new&lt;/a&gt;” rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17020&quot;&gt;#17020&lt;/a&gt;) (Ahmadou Waly NDIAYE)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/518130ae79a16d7bf4d752c211ae88152cc5a6f0&quot;&gt;&lt;code&gt;518130a&lt;/code&gt;&lt;/a&gt; docs: switch language based on current path (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16687&quot;&gt;#16687&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24206c49a138d4390f815ae122ee12f564bc604b&quot;&gt;&lt;code&gt;24206c4&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/59ed06041d4670781956221086ea0fca6683788d&quot;&gt;&lt;code&gt;59ed060&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.38.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17069&quot;&gt;#17069&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88c08984ec259ac22d839397c06beec8ef213120&quot;&gt;&lt;code&gt;88c0898&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf682d249f04a6a304407d5b9ddbbc4a9714dd62&quot;&gt;&lt;code&gt;cf682d2&lt;/code&gt;&lt;/a&gt; refactor: simplify &lt;a href=&quot;https://eslint.org/docs/rules/new-parens&quot;&gt;new-parens&lt;/a&gt; rule schema (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17060&quot;&gt;#17060&lt;/a&gt;) (MHO)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0dde02211268394bcbc2b0beef55ea2409b6f55d&quot;&gt;&lt;code&gt;0dde022&lt;/code&gt;&lt;/a&gt; ci: bump actions/add-to-project from 0.4.1 to 0.5.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17055&quot;&gt;#17055&lt;/a&gt;) (dependabot[bot])&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.37.0 released</title>
    <link href="https://eslint.org/blog/2023/03/eslint-v8.37.0-released/"/>
    <updated>2023-03-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/03/eslint-v8.37.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rules can now use &lt;a href=&quot;https://eslint.org/docs/latest/extend/custom-rules#accessing-variable-scopes&quot;&gt;&lt;code&gt;SourceCode#getScope(node)&lt;/code&gt;&lt;/a&gt; to get the &lt;a href=&quot;https://eslint.org/docs/latest/extend/scope-manager-interface#scope-interface&quot;&gt;scope&lt;/a&gt; of the given node. The &lt;code&gt;node&lt;/code&gt; argument is mandatory. This method works the same as &lt;code&gt;context.getScope()&lt;/code&gt; but isn’t limited to the currently traversed node. The &lt;code&gt;context.getScope()&lt;/code&gt; method is now considered deprecated in favor of &lt;code&gt;SourceCode#getScope(node)&lt;/code&gt;. This change is part of the &lt;a href=&quot;https://github.com/eslint/eslint/issues/16999&quot;&gt;implementation of language plugins&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Parsers and plugins can now export a &lt;a href=&quot;https://eslint.org/docs/latest/extend/plugins#metadata-in-plugins&quot;&gt;&lt;code&gt;meta&lt;/code&gt; object&lt;/a&gt; with &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;version&lt;/code&gt; properties to allow for easier debugging and more effective caching. In the &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files-new&quot;&gt;new config system&lt;/a&gt;, ESLint uses these values when serializing configuration objects (for example, the &lt;a href=&quot;https://eslint.org/docs/latest/use/command-line-interface#--print-config&quot;&gt;–print-config&lt;/a&gt; CLI option) and when determining whether cached lint results (the &lt;a href=&quot;https://eslint.org/docs/latest/use/command-line-interface#--cache&quot;&gt;&lt;code&gt;--cache&lt;/code&gt;&lt;/a&gt; CLI option) are still valid. If a parser/plugin provides &lt;code&gt;meta&lt;/code&gt;, ESLint can now invalidate caches when a new version of the parser/plugin is installed.&lt;/li&gt;
&lt;li&gt;In the new config system, &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files-new#configuring-a-custom-parser-and-its-options&quot;&gt;&lt;code&gt;languageOptions.parser&lt;/code&gt;&lt;/a&gt; must now be a parser object. Referencing parsers by &lt;code&gt;&amp;quot;pluginName/parserName&amp;quot;&lt;/code&gt; is no longer supported.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/require-unicode-regexp&quot;&gt;require-unicode-regexp&lt;/a&gt; rule now provides &lt;a href=&quot;https://eslint.org/docs/latest/extend/custom-rules#providing-suggestions&quot;&gt;suggestions&lt;/a&gt; for some of the problems it reports.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b6ab8b2a2ca8807baca121407f5bfb0a0a839427&quot;&gt;&lt;code&gt;b6ab8b2&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/require-unicode-regexp&quot;&gt;&lt;code&gt;require-unicode-regexp&lt;/code&gt;&lt;/a&gt; add suggestions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17007&quot;&gt;#17007&lt;/a&gt;) (Josh Goldberg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10022b1f4bda1ad89193512ecf18c2ee61db8202&quot;&gt;&lt;code&gt;10022b1&lt;/code&gt;&lt;/a&gt; feat: Copy getScope() to SourceCode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17004&quot;&gt;#17004&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1665c029acb92bf8812267f1647ad1a7054cbcb4&quot;&gt;&lt;code&gt;1665c02&lt;/code&gt;&lt;/a&gt; feat: Use plugin metadata for flat config serialization (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16992&quot;&gt;#16992&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3634f695ddab6a82c0a9b1d8695e62b60d23366&quot;&gt;&lt;code&gt;b3634f6&lt;/code&gt;&lt;/a&gt; feat: docs license (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17010&quot;&gt;#17010&lt;/a&gt;) (Samuel Roldan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/892e6e58c5a07a549d3104de3b6b5879797dc97f&quot;&gt;&lt;code&gt;892e6e5&lt;/code&gt;&lt;/a&gt; feat: languageOptions.parser must be an object. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16985&quot;&gt;#16985&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/619f3fd17324c7b71bf17e02047d0c6dc7e5109e&quot;&gt;&lt;code&gt;619f3fd&lt;/code&gt;&lt;/a&gt; fix: correctly handle &lt;code&gt;null&lt;/code&gt; default config in &lt;code&gt;RuleTester&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17023&quot;&gt;#17023&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fbf1184fed57df02640aad4659afb54dc26a2e9&quot;&gt;&lt;code&gt;1fbf118&lt;/code&gt;&lt;/a&gt; fix: &lt;code&gt;getFirstToken&lt;/code&gt;/&lt;code&gt;getLastToken&lt;/code&gt; on comment-only node (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16889&quot;&gt;#16889&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/129e252132c7c476d7de17f40b54a333ddb2e6bb&quot;&gt;&lt;code&gt;129e252&lt;/code&gt;&lt;/a&gt; fix: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/logical-assignment-operators&quot;&gt;&lt;code&gt;logical-assignment-operators&lt;/code&gt;&lt;/a&gt; rule description (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17000&quot;&gt;#17000&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/75339df99418df4d7e05a77e42ed7e22eabcc9e0&quot;&gt;&lt;code&gt;75339df&lt;/code&gt;&lt;/a&gt; docs: fix typos and missing info in &lt;a href=&quot;https://eslint.org/docs/rules/id-match&quot;&gt;id-match&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17029&quot;&gt;#17029&lt;/a&gt;) (Ed Lucas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec2d8307850dd039e118c001416606e1e0342bc8&quot;&gt;&lt;code&gt;ec2d830&lt;/code&gt;&lt;/a&gt; docs: Fix typos in the &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;&lt;code&gt;semi&lt;/code&gt;&lt;/a&gt; rule docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17012&quot;&gt;#17012&lt;/a&gt;) (Andrii Lundiak)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e39f28d8578a00f4da8d4ddad559547950128a0d&quot;&gt;&lt;code&gt;e39f28d&lt;/code&gt;&lt;/a&gt; docs: add back to top button (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16979&quot;&gt;#16979&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/721c71782a7c11025689a1500e7690fb3794fcce&quot;&gt;&lt;code&gt;721c717&lt;/code&gt;&lt;/a&gt; docs: Custom Processors cleanup and expansion (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16838&quot;&gt;#16838&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d049f974103e530ef76ede25af701635caf1f405&quot;&gt;&lt;code&gt;d049f97&lt;/code&gt;&lt;/a&gt; docs: ‘How ESLint is Maintained’ page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16961&quot;&gt;#16961&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5251a921866e8d3b380dfe8db8a6e6ab97773d5e&quot;&gt;&lt;code&gt;5251a92&lt;/code&gt;&lt;/a&gt; docs: Describe guard options for &lt;a href=&quot;https://eslint.org/docs/rules/guard-for-in&quot;&gt;guard-for-in&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16986&quot;&gt;#16986&lt;/a&gt;) (alope107)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6157d813e19b80481a46f8cbdf9eae18a55e5619&quot;&gt;&lt;code&gt;6157d81&lt;/code&gt;&lt;/a&gt; docs: Add example to &lt;a href=&quot;https://eslint.org/docs/rules/guard-for-in&quot;&gt;guard-for-in&lt;/a&gt; docs. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16983&quot;&gt;#16983&lt;/a&gt;) (alope107)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd47998af6efadcdf5ba93e0bd1f4c02d97d22b3&quot;&gt;&lt;code&gt;fd47998&lt;/code&gt;&lt;/a&gt; docs: update &lt;code&gt;Array.prototype.toSorted&lt;/code&gt; specification link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16982&quot;&gt;#16982&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e1cf6bfc5ebc29314ddbe462d6cb580e9ab085c&quot;&gt;&lt;code&gt;3e1cf6b&lt;/code&gt;&lt;/a&gt; docs: Copy edits on Maintain ESLint docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16939&quot;&gt;#16939&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c67f2992a743de4765bb6f11c12622e3651324b9&quot;&gt;&lt;code&gt;c67f299&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.37.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17033&quot;&gt;#17033&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee9ddbd63e262aed0052853760866c7a054af561&quot;&gt;&lt;code&gt;ee9ddbd&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dddb47528816cd7e2e737bfde108ed4d62e6a219&quot;&gt;&lt;code&gt;dddb475&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@2.0.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17032&quot;&gt;#17032&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/522431e5206bac2fcb41c0d6dc98a84929203bee&quot;&gt;&lt;code&gt;522431e&lt;/code&gt;&lt;/a&gt; chore: upgrade espree@9.5.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17031&quot;&gt;#17031&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5f9a88c79b32222c0331a9bac1c02571d953b69&quot;&gt;&lt;code&gt;f5f9a88&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-visitor-keys@3.4.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17030&quot;&gt;#17030&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4dd8d524e0fc9e8e2019df13f8b968021600e85c&quot;&gt;&lt;code&gt;4dd8d52&lt;/code&gt;&lt;/a&gt; ci: bump actions/stale from 7 to 8 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17026&quot;&gt;#17026&lt;/a&gt;) (dependabot[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad9dd6a933fd098a0d99c6a9aa059850535c23ee&quot;&gt;&lt;code&gt;ad9dd6a&lt;/code&gt;&lt;/a&gt; chore: remove duplicate scss, (&lt;a href=&quot;https://github.com/eslint/eslint/issues/17005&quot;&gt;#17005&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ada6a3e6e3607523958f35e1260537630ec0e976&quot;&gt;&lt;code&gt;ada6a3e&lt;/code&gt;&lt;/a&gt; ci: unpin Node 19 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16993&quot;&gt;#16993&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c3da975e69fde46f35338ce48528841a8dc1ffd2&quot;&gt;&lt;code&gt;c3da975&lt;/code&gt;&lt;/a&gt; chore: Remove triage label from template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16990&quot;&gt;#16990&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/69bc0e2f4412998f9384600a100d7882ea4dd3f3&quot;&gt;&lt;code&gt;69bc0e2&lt;/code&gt;&lt;/a&gt; ci: pin Node 19 to 19.7.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16987&quot;&gt;#16987&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Announcing the ESLint Community GitHub organization</title>
    <link href="https://eslint.org/blog/2023/03/announcing-eslint-community-org/"/>
    <updated>2023-03-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/03/announcing-eslint-community-org/</id>
    <content type="html">&lt;p&gt;In our
&lt;a href=&quot;https://eslint.org/blog/2023/01/eslint-2022-year-review&quot;&gt;2022 year in review&lt;/a&gt;,
we briefly mentioned a couple of project kickoffs, and we’re excited to now
announce the official
&lt;a href=&quot;https://github.com/eslint-community&quot;&gt;&lt;code&gt;eslint-community&lt;/code&gt; GitHub organization&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The strength of ESLint is in its ecosystem, and we continue to investigate
different ways of further supporting that community. We began by
&lt;a href=&quot;https://eslint.org/blog/2022/02/paying-contributors-sponsoring-projects/#supporting-the-community&quot;&gt;donating to community projects&lt;/a&gt;,
to ensure that high-value projects were receiving the funds they needed to
continue with ongoing maintenance and development. Our next step is to create
the &lt;code&gt;eslint-community&lt;/code&gt; GitHub organization as a home for high-value projects in
the ESLint ecosystem.&lt;/p&gt;
&lt;h2 id=&quot;about-the-organization&quot; tabindex=&quot;-1&quot;&gt;About the organization&lt;/h2&gt;
&lt;p&gt;As you can read in the
&lt;a href=&quot;https://github.com/eslint/rfcs/tree/main/designs/2022-community-eslint-org&quot;&gt;“&lt;code&gt;eslint-community&lt;/code&gt; GitHub organization” RFC&lt;/a&gt;,
the goal of this new organization is to have a place where community members can
help ensure widely depended upon ESLint-related packages live and never fall out
of maintenance.&lt;br /&gt;
The Community Core team (which currently consists of
&lt;a href=&quot;https://github.com/aladdin-add&quot;&gt;&lt;code&gt;@aladdin-add&lt;/code&gt;&lt;/a&gt;,
&lt;a href=&quot;https://github.com/ota-meshi&quot;&gt;&lt;code&gt;@ota-meshi&lt;/code&gt;&lt;/a&gt;,
&lt;a href=&quot;https://github.com/voxpelli&quot;&gt;&lt;code&gt;@voxpelli&lt;/code&gt;&lt;/a&gt; and myself
&lt;a href=&quot;https://github.com/MichaelDeBoey&quot;&gt;&lt;code&gt;@MichaelDeBoey&lt;/code&gt;&lt;/a&gt;) and all package
maintainers will make sure these packages stay up-to-date with newer ESLint
releases, and they don’t hold the wider community back by depending on a single
person’s GitHub or npm account.&lt;/p&gt;
&lt;h3 id=&quot;organization-projects&quot; tabindex=&quot;-1&quot;&gt;Organization projects&lt;/h3&gt;
&lt;p&gt;You might have noticed that some of your most beloved ESLint-related packages
have already been moved over to or been forked by the new &lt;code&gt;eslint-community&lt;/code&gt;
organization. A full list of the current projects include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint-community/eslint-formatter-codeframe&quot;&gt;&lt;code&gt;eslint-formatter-codeframe&lt;/code&gt;&lt;/a&gt;
and
&lt;a href=&quot;https://github.com/eslint-community/eslint-formatter-table&quot;&gt;&lt;code&gt;eslint-formatter-table&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
We took these over from &lt;a href=&quot;https://github.com/fregante&quot;&gt;@fregante&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint-community/eslint-plugin-eslint-plugin&quot;&gt;&lt;code&gt;eslint-plugin-eslint-plugin&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/aladdin-add&quot;&gt;@aladdin-add&lt;/a&gt;,
&lt;a href=&quot;https://github.com/bmish&quot;&gt;@bmish&lt;/a&gt; and
&lt;a href=&quot;https://github.com/not-an-aardvark&quot;&gt;@not-an-aardvark&lt;/a&gt; transferred this repo
to the new &lt;code&gt;eslint-community&lt;/code&gt; organization, but they’re still maintaining it&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint-community/eslint-plugin-promise&quot;&gt;&lt;code&gt;eslint-plugin-promise&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
We took this one over from &lt;a href=&quot;https://github.com/xjamundx&quot;&gt;@xjamundx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint-community/eslint-plugin-security&quot;&gt;&lt;code&gt;eslint-plugin-security&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
We took this one over from the
&lt;a href=&quot;https://github.com/nodesecurity&quot;&gt;@nodesecurity&lt;/a&gt; team, but
&lt;a href=&quot;https://github.com/nzakas&quot;&gt;@nzakas&lt;/a&gt; is still maintaining it&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mysticatea/eslint-plugin-eslint-comments&quot;&gt;&lt;code&gt;eslint-plugin-eslint-comments&lt;/code&gt;&lt;/a&gt;,
&lt;a href=&quot;https://github.com/eslint-community/eslint-utils&quot;&gt;&lt;code&gt;eslint-utils&lt;/code&gt;&lt;/a&gt; and
&lt;a href=&quot;https://github.com/eslint-community/regexpp&quot;&gt;&lt;code&gt;regexpp&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
We created a fork from &lt;a href=&quot;https://github.com/mysticatea&quot;&gt;@mysticatea&lt;/a&gt;’s repos
and published them under the
&lt;a href=&quot;https://npmjs.com/org/eslint-community&quot;&gt;&lt;code&gt;@eslint-community&lt;/code&gt; npm organization&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We also intend to fork, bring up to date, and publish the following packages
originally authored by &lt;a href=&quot;https://github.com/mysticatea&quot;&gt;@mysticatea&lt;/a&gt; as well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mysticatea/eslint-plugin-es&quot;&gt;&lt;code&gt;eslint-plugin-es&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
We’ll work on getting all
&lt;a href=&quot;https://github.com/eslint-community/eslint-plugin-es-x&quot;&gt;&lt;code&gt;eslint-plugin-es-x&lt;/code&gt;&lt;/a&gt;
features merged as well&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/mysticatea/eslint-plugin-node&quot;&gt;&lt;code&gt;eslint-plugin-node&lt;/code&gt;&lt;/a&gt;&lt;br /&gt;
We’ll work on getting all
&lt;a href=&quot;https://github.com/eslint-community/eslint-plugin-n&quot;&gt;&lt;code&gt;eslint-plugin-n&lt;/code&gt;&lt;/a&gt;
features merged as well&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Of course, we don’t want to stop there.&lt;/p&gt;
&lt;h2 id=&quot;submitting-projects-for-the-organization&quot; tabindex=&quot;-1&quot;&gt;Submitting projects for the organization&lt;/h2&gt;
&lt;p&gt;If you think your project would be a good fit for the new &lt;code&gt;eslint-community&lt;/code&gt;
organization, or you’re depending on a project that’s currently unmaintained and
want to have the community to adopt it, you can contact the Community Core team
on &lt;a href=&quot;https://eslint.org/chat/eslint-community&quot;&gt;the official ESLint Discord&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Keep in mind that we’ll only be able to accept projects that adhere to the
following criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Is it a package that is ESLint-related?&lt;br /&gt;
Mostly this will be ESLint plugins, but (unmaintained) dependencies of such
packages, closely related packages, or packages split from the main ESLint
repo (like
&lt;a href=&quot;https://github.com/eslint-community/eslint-formatter-codeframe&quot;&gt;&lt;code&gt;eslint-formatter-codeframe&lt;/code&gt;&lt;/a&gt;
or
&lt;a href=&quot;https://github.com/eslint-community/eslint-formatter-table&quot;&gt;&lt;code&gt;eslint-formatter-table&lt;/code&gt;&lt;/a&gt;)
or used by the main repo (like
&lt;a href=&quot;https://github.com/mysticatea/eslint-utils&quot;&gt;&lt;code&gt;eslint-utils&lt;/code&gt;&lt;/a&gt; and
&lt;a href=&quot;https://github.com/mysticatea/regexpp&quot;&gt;&lt;code&gt;regexpp&lt;/code&gt;&lt;/a&gt;) could go in the
&lt;code&gt;eslint-community&lt;/code&gt; GitHub organization as well.&lt;/p&gt;
&lt;p&gt;We won’t be accepting shareable configs as these are typically very
opinionated and are easy to extend when necessary.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is it widely depended upon throughout the ESLint community?&lt;br /&gt;
We don’t have a real number in mind here, but the packages we currently
maintain (or that we’re planning to maintain) almost all have at least 3M
downloads/week.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These criteria aren’t written in stone, but are the guidelines we’re beginning
with to determine whether to accept a project into the organization.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;We hope that this new &lt;code&gt;eslint-community&lt;/code&gt; organization will help us further
support the awesome ESLint ecosystem and ensure that the community can continue
to rely on these high-value, widely depended upon projects for years to come.
Ensuring that the ESLint ecosystem remains vibrant and without stagnation is a
key goal of the project as a whole, and we believe the &lt;code&gt;eslint-community&lt;/code&gt;
organization will only increase the confidence of ESLint users when relying on
community-maintained projects.&lt;/p&gt;
&lt;p&gt;If you have any questions about the &lt;code&gt;eslint-community&lt;/code&gt; organization, feel free
to ask them on
&lt;a href=&quot;https://eslint.org/chat/eslint-community&quot;&gt;the official ESLint Discord&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.36.0 released</title>
    <link href="https://eslint.org/blog/2023/03/eslint-v8.36.0-released/"/>
    <updated>2023-03-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/03/eslint-v8.36.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; rule has a new option &lt;code&gt;checkJSDoc&lt;/code&gt;. This option can only be used when the string option is set to &lt;code&gt;&amp;quot;separate-lines&amp;quot;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c89a485c49450532ee3db74f2638429f1f37d0dd&quot;&gt;&lt;code&gt;c89a485&lt;/code&gt;&lt;/a&gt; feat: Add &lt;code&gt;checkJSDoc&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16807&quot;&gt;#16807&lt;/a&gt;) (Laurent Cozic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5f5e11bd5fd3daab9ccae41e270739c836c305e&quot;&gt;&lt;code&gt;f5f5e11&lt;/code&gt;&lt;/a&gt; feat: Serialize parsers/processors in flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16944&quot;&gt;#16944&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4799297ea582c81fd1e5623d32a7ddf7a7f3a126&quot;&gt;&lt;code&gt;4799297&lt;/code&gt;&lt;/a&gt; feat: use @eslint-community dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16784&quot;&gt;#16784&lt;/a&gt;) (Michaël De Boey)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/92c1943ba73ea01e87086236e8736539b0eed558&quot;&gt;&lt;code&gt;92c1943&lt;/code&gt;&lt;/a&gt; fix: correctly iterate files matched by glob patterns (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16831&quot;&gt;#16831&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b98fdd413a3b07b262bfce6f704c1c1bb8582770&quot;&gt;&lt;code&gt;b98fdd4&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/caf08ce0cc74917f7c0eec92d25fd784dc33ac4d&quot;&gt;&lt;code&gt;caf08ce&lt;/code&gt;&lt;/a&gt; docs: fix estree link in custom formatters docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16967&quot;&gt;#16967&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3398431574b903757bc78b08c8ed36b7b9fce8eb&quot;&gt;&lt;code&gt;3398431&lt;/code&gt;&lt;/a&gt; docs: Custom Parsers cleanup/expansion (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16887&quot;&gt;#16887&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19d3531d9b54e1004318d28f9a6e18305c5bcc18&quot;&gt;&lt;code&gt;19d3531&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b09a512107249a4eb19ef5a37b0bd672266eafdb&quot;&gt;&lt;code&gt;b09a512&lt;/code&gt;&lt;/a&gt; docs: detect and fix broken links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16837&quot;&gt;#16837&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/602b11121910a97ab2bc4a95a46dd0ccd0a89309&quot;&gt;&lt;code&gt;602b111&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.36.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16978&quot;&gt;#16978&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/43c2345c27024aeab6127e6bbfd55c8b70bd317e&quot;&gt;&lt;code&gt;43c2345&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/00afb84e5039874c8745a45c953fceaf0c71c454&quot;&gt;&lt;code&gt;00afb84&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@2.0.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16977&quot;&gt;#16977&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/698c5aad50e628ff00281dbc786e42de79834035&quot;&gt;&lt;code&gt;698c5aa&lt;/code&gt;&lt;/a&gt; chore: upgrade espree@9.5.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16976&quot;&gt;#16976&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/75acdd21c5ce7024252e9d41ed77d2f30587caac&quot;&gt;&lt;code&gt;75acdd2&lt;/code&gt;&lt;/a&gt; chore: lint more js files in docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16964&quot;&gt;#16964&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89d9844b3151f09b5b21b6eeeda671009ec301e9&quot;&gt;&lt;code&gt;89d9844&lt;/code&gt;&lt;/a&gt; ci: bump actions/add-to-project from 0.4.0 to 0.4.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16943&quot;&gt;#16943&lt;/a&gt;) (dependabot[bot])&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.35.0 released</title>
    <link href="https://eslint.org/blog/2023/02/eslint-v8.35.0-released/"/>
    <updated>2023-02-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/02/eslint-v8.35.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ESLint’s predefined &lt;code&gt;recommended&lt;/code&gt; and &lt;code&gt;all&lt;/code&gt; configs are now exported from a new &lt;code&gt;@eslint/js&lt;/code&gt; package. Those using &lt;code&gt;&amp;quot;eslint:recommended&amp;quot;&lt;/code&gt; or &lt;code&gt;&amp;quot;eslint:all&amp;quot;&lt;/code&gt; as strings in the new flat config format should instead install and import &lt;code&gt;@eslint/js&lt;/code&gt; and &lt;a href=&quot;https://eslint.org/docs/latest/use/configure/configuration-files-new#using-predefined-configurations&quot;&gt;reference predefined configs&lt;/a&gt; as &lt;code&gt;js.configs.recommended&lt;/code&gt; or &lt;code&gt;js.configs.all&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-binary-expression&quot;&gt;&lt;code&gt;no-constant-binary-expression&lt;/code&gt;&lt;/a&gt; rule now catches more cases involving the nullish coalescing operator, &lt;code&gt;??&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A new version of the &lt;code&gt;esquery&lt;/code&gt; selector engine includes performance improvements covered in &lt;a href=&quot;https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-3/&quot;&gt;a blog post&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/marvinhagemeist&quot;&gt;Marvin Hagemeister&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e34a04e3a4395bce59bc6acadf84281abc11d18&quot;&gt;&lt;code&gt;8e34a04&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;afterHashbangComment&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/lines-around-comment&quot;&gt;&lt;code&gt;lines-around-comment&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16920&quot;&gt;#16920&lt;/a&gt;) (SUZUKI Sosuke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c8c0c715a2964cc1859b99f9d4f542675094d1d5&quot;&gt;&lt;code&gt;c8c0c71&lt;/code&gt;&lt;/a&gt; feat: Move all and recommended configs into package. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16844&quot;&gt;#16844&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71f6f0dcd574320ee71c3eb1f313841899bdf260&quot;&gt;&lt;code&gt;71f6f0d&lt;/code&gt;&lt;/a&gt; feat: report more cases with &lt;code&gt;??&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-binary-expression&quot;&gt;no-constant-binary-expression&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16826&quot;&gt;#16826&lt;/a&gt;) (Daiki Nishikawa)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9698bc5cdec1bbee567a6a489da82e87fe65d019&quot;&gt;&lt;code&gt;9698bc5&lt;/code&gt;&lt;/a&gt; fix: pin esquery v1.4.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/16896&quot;&gt;#16896&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16897&quot;&gt;#16897&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9f195ef12deb114fb86763010a23ea0cb4c78d1&quot;&gt;&lt;code&gt;f9f195e&lt;/code&gt;&lt;/a&gt; docs: Plugin docs cleanup &amp;amp; expansion (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16862&quot;&gt;#16862&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df809fdedc5fc92df4be8340e28baedbde605b4f&quot;&gt;&lt;code&gt;df809fd&lt;/code&gt;&lt;/a&gt; docs: Custom Formatters page cleanup/expansion (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16886&quot;&gt;#16886&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0700d1b14659bf39b1a08f082c44c9084cf676a8&quot;&gt;&lt;code&gt;0700d1b&lt;/code&gt;&lt;/a&gt; docs: Add PostCSS/Autoprefixer/CSSNano (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16502&quot;&gt;#16502&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b9e9bf78bedb009fe2813308ede1f46502c3890&quot;&gt;&lt;code&gt;7b9e9bf&lt;/code&gt;&lt;/a&gt; docs: support unicode anchors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16782&quot;&gt;#16782&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5fbc0bffdd9f84feb43296eb502d1e484fb323f2&quot;&gt;&lt;code&gt;5fbc0bf&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67865a064cc1a4e320030299edc1cfdd1f9ac3b8&quot;&gt;&lt;code&gt;67865a0&lt;/code&gt;&lt;/a&gt; docs: Remove mention of mailing list (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16869&quot;&gt;#16869&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/43af24a88b939a62880c37d1332b02f677d82f16&quot;&gt;&lt;code&gt;43af24a&lt;/code&gt;&lt;/a&gt; docs: Add explanation of when to use ‘warn’ severity (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16882&quot;&gt;#16882&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed2999b38b4d61f5c278301738e294012d5d3c9e&quot;&gt;&lt;code&gt;ed2999b&lt;/code&gt;&lt;/a&gt; docs: Shareable configs page edits and expansion (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16824&quot;&gt;#16824&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27806358b5e1c4d37b63b1c61595e86ff03b5b42&quot;&gt;&lt;code&gt;2780635&lt;/code&gt;&lt;/a&gt; docs: fix typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16884&quot;&gt;#16884&lt;/a&gt;) (Lioness100)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5bdaae205c3a0089ea338b382df59e21d5b06436&quot;&gt;&lt;code&gt;5bdaae2&lt;/code&gt;&lt;/a&gt; docs: Ways to Extend ESLint page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16861&quot;&gt;#16861&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cdcbe127de20cbcc4e24131a808c13b1024e61a2&quot;&gt;&lt;code&gt;cdcbe12&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/js@8.35.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16935&quot;&gt;#16935&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c954c349c0c2f88919614efc95e1368c245582fd&quot;&gt;&lt;code&gt;c954c34&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a517da8e55f6de28e9c028c5627fa7d82945969&quot;&gt;&lt;code&gt;5a517da&lt;/code&gt;&lt;/a&gt; chore: package.json update for @eslint/js release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f10926d76be7cf675721b29bd5030e85cb4ab30&quot;&gt;&lt;code&gt;9f10926&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@2.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16928&quot;&gt;#16928&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da728fae6c4e5fdda74195e84d45d67ad5cafc45&quot;&gt;&lt;code&gt;da728fa&lt;/code&gt;&lt;/a&gt; ci: use LTS node version in workflows (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16907&quot;&gt;#16907&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c57b4f3dc6383e452120381204ee4a7c874225a0&quot;&gt;&lt;code&gt;c57b4f3&lt;/code&gt;&lt;/a&gt; perf: upgrade to esquery@1.4.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16901&quot;&gt;#16901&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9122f0764031dc36970df715bc5e16973890e18d&quot;&gt;&lt;code&gt;9122f07&lt;/code&gt;&lt;/a&gt; chore: Update stale bot settings (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16870&quot;&gt;#16870&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.34.0 released</title>
    <link href="https://eslint.org/blog/2023/02/eslint-v8.34.0-released/"/>
    <updated>2023-02-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/02/eslint-v8.34.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; rule now supports &lt;a href=&quot;https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toSorted&quot;&gt;&lt;code&gt;Array.prototype.toSorted&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b2fcf7e928fc92ac6d43617bdee1bda250b7491&quot;&gt;&lt;code&gt;9b2fcf7&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt; supports &lt;code&gt;Array.prototype.toSorted&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16845&quot;&gt;#16845&lt;/a&gt;) (SUZUKI Sosuke)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/923f61d8fc82d83b912c6ba95abb5a509c4d7b52&quot;&gt;&lt;code&gt;923f61d&lt;/code&gt;&lt;/a&gt; fix: false positive with assignment in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;&lt;code&gt;no-extra-parens&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16872&quot;&gt;#16872&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f0a988384ea1a262150e70d83abd8a5e50c46fa7&quot;&gt;&lt;code&gt;f0a9883&lt;/code&gt;&lt;/a&gt; docs: split rules documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16797&quot;&gt;#16797&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67aa37b583f059226b9c959672400f04ed6a56b5&quot;&gt;&lt;code&gt;67aa37b&lt;/code&gt;&lt;/a&gt; docs: fix typo in command-line-interface (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16871&quot;&gt;#16871&lt;/a&gt;) (Kevin Rouchut)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/337f7ed96131d873be7ae6b010739476d0ad15e9&quot;&gt;&lt;code&gt;337f7ed&lt;/code&gt;&lt;/a&gt; docs: fix width of language input (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16849&quot;&gt;#16849&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71349a1f709baa361bd656a7ce4a7d35d857a9a8&quot;&gt;&lt;code&gt;71349a1&lt;/code&gt;&lt;/a&gt; docs: Configure a Parser page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16803&quot;&gt;#16803&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de7e925d03764f3681269b30bb60b92ee463c10f&quot;&gt;&lt;code&gt;de7e925&lt;/code&gt;&lt;/a&gt; docs: remove extra line numbers in example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16848&quot;&gt;#16848&lt;/a&gt;) (jonz94)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad38d77102d6fe30cfa92c831174f178bb35c88b&quot;&gt;&lt;code&gt;ad38d77&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9dbe06d0ad875e6d5964497e2975e8d789e763d0&quot;&gt;&lt;code&gt;9dbe06d&lt;/code&gt;&lt;/a&gt; chore: add &lt;code&gt;type&lt;/code&gt; property to &lt;a href=&quot;https://eslint.org/docs/rules/array-element-newline&quot;&gt;array-element-newline&lt;/a&gt; schema (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16877&quot;&gt;#16877&lt;/a&gt;) (MHO)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a061527a0332f0edf559acfc2902a327cae098d9&quot;&gt;&lt;code&gt;a061527&lt;/code&gt;&lt;/a&gt; chore: Remove unused functions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16868&quot;&gt;#16868&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.33.0 released</title>
    <link href="https://eslint.org/blog/2023/01/eslint-v8.33.0-released/"/>
    <updated>2023-01-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/01/eslint-v8.33.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-exports&quot;&gt;no-restricted-exports&lt;/a&gt; rule gained a new &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-exports#restrictdefaultexports&quot;&gt;&lt;code&gt;restrictDefaultExports&lt;/code&gt; option&lt;/a&gt; to control where the &lt;code&gt;default&lt;/code&gt; export can be used.&lt;/li&gt;
&lt;li&gt;This release continues our ongoing &lt;a href=&quot;https://github.com/eslint/eslint/issues/16365&quot;&gt;documentation update project&lt;/a&gt;. All moved pages should redirect to their new locations, but please let us know if you find any broken links.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2cc7954cdb1fed44e8a5d3c9b3ea1deceadb5e00&quot;&gt;&lt;code&gt;2cc7954&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;restrictDefaultExports&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-exports&quot;&gt;no-restricted-exports&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16785&quot;&gt;#16785&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17f4be2b66deb81f4e9ffb3d6bdfb79f3fcf85a2&quot;&gt;&lt;code&gt;17f4be2&lt;/code&gt;&lt;/a&gt; docs: Fix examples in &lt;a href=&quot;https://eslint.org/docs/rules/no-multiple-empty-lines&quot;&gt;no-multiple-empty-lines&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16835&quot;&gt;#16835&lt;/a&gt;) (jonz94)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c7cfe33c4a39cf2c23529afe02030ea7f8acf70&quot;&gt;&lt;code&gt;9c7cfe3&lt;/code&gt;&lt;/a&gt; docs: ‘Source Code’ content in ‘Set up Development Environment’ page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16780&quot;&gt;#16780&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ede5c6475469a905da4f559ab55f0ee73168a9d7&quot;&gt;&lt;code&gt;ede5c64&lt;/code&gt;&lt;/a&gt; docs: Custom processors page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16802&quot;&gt;#16802&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2620614f525de13f2e3ab0a7cd92abe89dae4897&quot;&gt;&lt;code&gt;2620614&lt;/code&gt;&lt;/a&gt; docs: Code of Conduct page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16781&quot;&gt;#16781&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/50a8efd957c70c9978a8ed25744a24193b00e078&quot;&gt;&lt;code&gt;50a8efd&lt;/code&gt;&lt;/a&gt; docs: report a sec vulnerability page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16808&quot;&gt;#16808&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed60afd4450e769a975447178299446f4439d926&quot;&gt;&lt;code&gt;ed60afd&lt;/code&gt;&lt;/a&gt; docs: Update page titles, section landing pages, and side TOC (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16760&quot;&gt;#16760&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/333c71243537966930e9ab8178bc98c37949b5f2&quot;&gt;&lt;code&gt;333c712&lt;/code&gt;&lt;/a&gt; docs: add background to code-path-diagrams for dark-mode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16822&quot;&gt;#16822&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5f7b9b8b512f5c6a5b4a1037f81bb3f5a7311e0&quot;&gt;&lt;code&gt;f5f7b9b&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2aa4f5fb2fdb1c4a1734093c225e5c6251b0ee0f&quot;&gt;&lt;code&gt;2aa4f5f&lt;/code&gt;&lt;/a&gt; docs: &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt;: Add multi-comparison example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16776&quot;&gt;#16776&lt;/a&gt;) (Sebastian Simon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/40287dbe7407934a69805f02ece07491778c3694&quot;&gt;&lt;code&gt;40287db&lt;/code&gt;&lt;/a&gt; docs: Remove Google Group icon (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16779&quot;&gt;#16779&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea10ca5b7b5bd8f6e6daf030ece9a3a82f10994c&quot;&gt;&lt;code&gt;ea10ca5&lt;/code&gt;&lt;/a&gt; docs: ‘a .eslint’ -&amp;gt; ‘an .eslint’ for consistency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16809&quot;&gt;#16809&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3be07488ee7b6a9591d169be9648fbd36b32105e&quot;&gt;&lt;code&gt;3be0748&lt;/code&gt;&lt;/a&gt; docs: add example for nodejs lintText api (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16789&quot;&gt;#16789&lt;/a&gt;) (Siva K)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce4f5ff30590df053a539c8e8e2597838e038a36&quot;&gt;&lt;code&gt;ce4f5ff&lt;/code&gt;&lt;/a&gt; docs: Replace removed related rules with a valid rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16800&quot;&gt;#16800&lt;/a&gt;) (Ville Saalo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.32.0 released</title>
    <link href="https://eslint.org/blog/2023/01/eslint-v8.32.0-released/"/>
    <updated>2023-01-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/01/eslint-v8.32.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/prefer-regex-literals&quot;&gt;prefer-regex-literals&lt;/a&gt; rule now provides &lt;a href=&quot;https://eslint.org/docs/latest/extend/custom-rules#providing-suggestions&quot;&gt;suggestions&lt;/a&gt; for some of the problems it reports.&lt;/li&gt;
&lt;li&gt;This release reorganizes documentation as part of our ongoing &lt;a href=&quot;https://github.com/eslint/eslint/issues/16365&quot;&gt;documentation update project&lt;/a&gt;. All moved pages should redirect to their new locations, but please let us know if you find any broken links.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc20f242a2ac073b5af6d5fca67e07a175f36c3b&quot;&gt;&lt;code&gt;fc20f24&lt;/code&gt;&lt;/a&gt; feat: add suggestions for redundant wrapping in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-regex-literals&quot;&gt;prefer-regex-literals&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16658&quot;&gt;#16658&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4f8329164d7b293a1557e05b987d2a685fe1d30&quot;&gt;&lt;code&gt;b4f8329&lt;/code&gt;&lt;/a&gt; fix: ignore directives for &lt;a href=&quot;https://eslint.org/docs/rules/no-fallthrough&quot;&gt;no-fallthrough&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16757&quot;&gt;#16757&lt;/a&gt;) (gfyoung)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17b65ad10d653bb05077f21d8b1f79bee96e38d8&quot;&gt;&lt;code&gt;17b65ad&lt;/code&gt;&lt;/a&gt; docs: IA Update page URL move (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16665&quot;&gt;#16665&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5981296d5c7c86228ad766009901191fdd87d5a4&quot;&gt;&lt;code&gt;5981296&lt;/code&gt;&lt;/a&gt; docs: fix theme switcher button (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16752&quot;&gt;#16752&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66694136b67277c050bd27f60050779687a88c9f&quot;&gt;&lt;code&gt;6669413&lt;/code&gt;&lt;/a&gt; docs: deploy prerelease docs under the &lt;code&gt;/docs/next/&lt;/code&gt; path (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16541&quot;&gt;#16541&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78ecfe0e52c0e5780fefc8dc9a98864e48de6637&quot;&gt;&lt;code&gt;78ecfe0&lt;/code&gt;&lt;/a&gt; docs: use inline code for rule options name (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16768&quot;&gt;#16768&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc2ea598aee97beb6d768866da1ee4f63775f0c9&quot;&gt;&lt;code&gt;fc2ea59&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/762a8727fb3b5619cff900826053b643ca5f1162&quot;&gt;&lt;code&gt;762a872&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2952d6ed95811ce0971b6855d66fb7a9767a7b72&quot;&gt;&lt;code&gt;2952d6e&lt;/code&gt;&lt;/a&gt; chore: sync templates/*.md files with issue templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16758&quot;&gt;#16758&lt;/a&gt;) (gfyoung)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e34418b31664decfb2337de798feafbf985b66c&quot;&gt;&lt;code&gt;3e34418&lt;/code&gt;&lt;/a&gt; chore: Add new issues to triage project (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16740&quot;&gt;#16740&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint&#39;s 2022 year in review</title>
    <link href="https://eslint.org/blog/2023/01/eslint-2022-year-review/"/>
    <updated>2023-01-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2023/01/eslint-2022-year-review/</id>
    <content type="html">&lt;p&gt;In February 2022, we shared our &lt;a href=&quot;https://eslint.org/blog/2022/02/paying-contributors-sponsoring-projects/&quot;&gt;plan for 2022&lt;/a&gt;, including how the ESLint project as a whole would be spending its sponsorship money for the betterment of the project. In this post, I’ll share what we achieved during the year.&lt;/p&gt;
&lt;h2 id=&quot;website-redesign&quot; tabindex=&quot;-1&quot;&gt;Website redesign&lt;/h2&gt;
&lt;p&gt;The most recognizable change to the project was undoubtedly the website redesign. The new website was &lt;a href=&quot;https://twitter.com/geteslint/status/1540032964087623681&quot;&gt;officially launched&lt;/a&gt; on June 23 and was immediately met with widespread positive reviews. The designer, Hayden Bleasel, &lt;a href=&quot;https://eslint.org/blog/2022/08/redesigning-eslint/&quot;&gt;shared his approach&lt;/a&gt; for the redesign in a guest post on the newly redesigned website.&lt;/p&gt;
&lt;p&gt;We also launched several international language sites, including &lt;a href=&quot;https://zh-hans.eslint.org/&quot;&gt;Chinese&lt;/a&gt;, &lt;a href=&quot;https://es.eslint.org/&quot;&gt;Spanish&lt;/a&gt;, &lt;a href=&quot;https://de.eslint.org/&quot;&gt;German&lt;/a&gt;, &lt;a href=&quot;https://ja.eslint.org/&quot;&gt;Japanese&lt;/a&gt;, &lt;a href=&quot;https://pt-br.eslint.org/&quot;&gt;Brazilian Portuguese&lt;/a&gt;, &lt;a href=&quot;https://fr.eslint.org/&quot;&gt;French&lt;/a&gt;, and &lt;a href=&quot;https://hi.eslint.org/&quot;&gt;Hindi&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The website launch excited a lot of people to the point where we started getting contributions just for the website. As a result, we created a new &lt;a href=&quot;https://eslint.org/team&quot;&gt;website team&lt;/a&gt; to focus on keeping the new website up-to-date and continuing to make improvements.&lt;/p&gt;
&lt;p&gt;This effort cost nearly $60,000 and would not have been possible without the support of our sponsors.&lt;/p&gt;
&lt;h2 id=&quot;preview-release-of-the-new-configuration-system&quot; tabindex=&quot;-1&quot;&gt;Preview release of the new configuration system&lt;/h2&gt;
&lt;p&gt;We had been working on the design of a new configuration system for several years, and in 2022, users finally got to see the new system. In August, we released the first preview of the new configuration system through a series of blog posts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-1/&quot;&gt;Part 1&lt;/a&gt; explains why we needed a new configuration system and the problems with the current system.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-2/&quot;&gt;Part 2&lt;/a&gt; explains the new configuration system and the thinking that went into its design.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-3/&quot;&gt;Part 3&lt;/a&gt; explains how to use the developer preview of the configuration system.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Since we published that third post, the new configuration system is almost complete and is available for use by end users (&lt;a href=&quot;https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new&quot;&gt;see the docs&lt;/a&gt; for more).&lt;/p&gt;
&lt;p&gt;We anticipate the final release of the new configuration system in 2023 along with a transition period where both the new and old configuration systems can be used before the old is eventually removed.&lt;/p&gt;
&lt;h2 id=&quot;updates-to-support-es2022&quot; tabindex=&quot;-1&quot;&gt;Updates to support ES2022&lt;/h2&gt;
&lt;p&gt;As we do each year, the ESLint team stays on top of the latest ECMAScript versions to make sure ESLint continues to support the more recent JavaScript syntax and features. This year, we added support for:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tc39/proposal-top-level-await&quot;&gt;Top-level await&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tc39/proposal-class-fields&quot;&gt;Class fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tc39/proposal-private-fields-in-in&quot;&gt;Ergonomic brand checks for private fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tc39/proposal-class-static-block&quot;&gt;Class static initialization blocks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tc39/proposal-regexp-match-indices&quot;&gt;RegExp Match Indices&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can enable these in your configuration by setting &lt;code&gt;ecmaVersion: 2022&lt;/code&gt; or &lt;code&gt;ecmaVersion: &amp;quot;latest&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;project-kickoffs&quot; tabindex=&quot;-1&quot;&gt;Project kickoffs&lt;/h2&gt;
&lt;p&gt;In addition to our normal maintenance and development, we also kicked off a couple of additional projects:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Documentation Refresh&lt;/strong&gt; - we hired a technical writer to start reviewing, organizing, and rewriting our documentation. We have never had a documentation-focused project and we felt like 2022 was the right time to start this project given the funds we had available. We anticipate this project to continue until mid-2023.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ESLint Community&lt;/strong&gt; - the strength of ESLint is in its ecosystem and we had been searching for a way to better organize that ecosystem. As a result, we created the &lt;a href=&quot;https://github.com/eslint-community&quot;&gt;&lt;code&gt;eslint-community&lt;/code&gt;&lt;/a&gt; GitHub organization as a home for high-value projects in the ESLint ecosystem. We intend this to be a place for projects related to ESLint to live and thrive so that they never fall out of maintenance. We are still working through the details on this and you can expect a follow-up blog post soon.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;income-review&quot; tabindex=&quot;-1&quot;&gt;Income review&lt;/h2&gt;
&lt;p&gt;During 2022, ESLint received $211,656.13 USD from all of our income sources. You can see the breakdown of our income sources in the following table.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Source&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Amount&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Open Collective&lt;/td&gt;
&lt;td&gt;$142,092.92&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Sponsors&lt;/td&gt;
&lt;td&gt;$26,606.61&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tidelift&lt;/td&gt;
&lt;td&gt;$29,047.86&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Carbon Ads&lt;/td&gt;
&lt;td&gt;$13,831.16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;http://stackaid.us/&quot;&gt;Stackaid.us&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;$77.58&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$211,656.13&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;As usual, most of our donations came through Open Collective followed by GitHub Sponsors. Our Tidelift agreement also provided a good amount of income as did the ad on our website.&lt;/p&gt;
&lt;p&gt;We are extremely grateful for the generous donations from companies and individuals that allow the project to continue development.&lt;/p&gt;
&lt;h2 id=&quot;top-sponsors&quot; tabindex=&quot;-1&quot;&gt;Top sponsors&lt;/h2&gt;
&lt;p&gt;The overwhelming majority of our income came from sponsors, and we’re extra grateful to all of the sponsors who donated $1,000 or more during the year.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Sponsor&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;2022 Donation Total&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chrome Frameworks Fund&lt;/td&gt;
&lt;td&gt;$24,500.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Automattic&lt;/td&gt;
&lt;td&gt;$24,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Etsy Open Source&lt;/td&gt;
&lt;td&gt;$18,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Salesforce&lt;/td&gt;
&lt;td&gt;$13,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Airbnb&lt;/td&gt;
&lt;td&gt;$12,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nx (by Nrwl)&lt;/td&gt;
&lt;td&gt;$6,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;American Express&lt;/td&gt;
&lt;td&gt;$6,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Liftoff&lt;/td&gt;
&lt;td&gt;$6,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contra&lt;/td&gt;
&lt;td&gt;$5,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Substack&lt;/td&gt;
&lt;td&gt;$5,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cybozu&lt;/td&gt;
&lt;td&gt;$3,152.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Algolia&lt;/td&gt;
&lt;td&gt;$3,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wix Engineering&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ignition&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Icons8&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discord&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anagram Solver&lt;/td&gt;
&lt;td&gt;$2,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;launchdarkly&lt;/td&gt;
&lt;td&gt;$2,200.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ThemeIsle&lt;/td&gt;
&lt;td&gt;$2,200.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RIDI&lt;/td&gt;
&lt;td&gt;$2,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VPS Server&lt;/td&gt;
&lt;td&gt;$2,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sentry&lt;/td&gt;
&lt;td&gt;$1,608.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HeroCoders&lt;/td&gt;
&lt;td&gt;$1,400.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QuickBooks Tool hub&lt;/td&gt;
&lt;td&gt;$1,320.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yannick Croissant&lt;/td&gt;
&lt;td&gt;$1,200.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;expenses-review&quot; tabindex=&quot;-1&quot;&gt;Expenses review&lt;/h2&gt;
&lt;p&gt;In 2022, we spent $157,270.48 USD on the ESLint project as a whole. This includes regular maintenance and development as well as other costs related to the project. See the table below for an overview.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Amount&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Maintenance and Development&lt;/td&gt;
&lt;td&gt;-$68,428.23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TSC Stipend (Tidelift)&lt;/td&gt;
&lt;td&gt;-$29,047.86&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Website Redesign&lt;/td&gt;
&lt;td&gt;-$7,167.52&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Technical Writing&lt;/td&gt;
&lt;td&gt;-$4,147.50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contributor Pool&lt;/td&gt;
&lt;td&gt;-$7,900.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payment Processor Fees&lt;/td&gt;
&lt;td&gt;-$2,942.67&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Health Insurance&lt;/td&gt;
&lt;td&gt;-$1,847.86&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Source Collective Fee&lt;/td&gt;
&lt;td&gt;-$12,172.84&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ecosystem/Dependencies&lt;/td&gt;
&lt;td&gt;-$14,350.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Community Management&lt;/td&gt;
&lt;td&gt;-$4,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Workspace&lt;/td&gt;
&lt;td&gt;-$216.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tech Writer Hiring &amp;amp; Interviews&lt;/td&gt;
&lt;td&gt;-$1,750.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Community Logo Design&lt;/td&gt;
&lt;td&gt;-$3,000.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Guest Blog Posts&lt;/td&gt;
&lt;td&gt;-$300.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;-$157,270.48&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;As a reminder, the Contributor Pool is money we award for contributions to people who are not on the ESLint team as a way to thank them for making impactful contributions to the project. Community Management refers to the ongoing work required to manage the ESLint Community.&lt;/p&gt;
&lt;h2 id=&quot;supporting-our-dependencies-and-ecosystem&quot; tabindex=&quot;-1&quot;&gt;Supporting our dependencies and ecosystem&lt;/h2&gt;
&lt;p&gt;In 2022, the ESLint project donated $14,350.00 USD to ecosystem projects and our dependencies. This is part of our ongoing commitment to supporting projects that are important to ESLint.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Project&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Donations&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;lint-staged&lt;/td&gt;
&lt;td&gt;$2,450.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ajv&lt;/td&gt;
&lt;td&gt;$1,700.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;debug&lt;/td&gt;
&lt;td&gt;$1,700.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;eslint-plugin-import&lt;/td&gt;
&lt;td&gt;$1,700.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;jsx-eslint&lt;/td&gt;
&lt;td&gt;$1,700.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sindre Sorhus&lt;/td&gt;
&lt;td&gt;$1,700.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;typescript-eslint&lt;/td&gt;
&lt;td&gt;$1,700.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rollup&lt;/td&gt;
&lt;td&gt;$900.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eleventy&lt;/td&gt;
&lt;td&gt;$800.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;$14,350.00&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;looking-forward-to-2023&quot; tabindex=&quot;-1&quot;&gt;Looking forward to 2023&lt;/h2&gt;
&lt;p&gt;While ESLint had a fantastic 2022, we are looking forward to an even better 2023. With the ESLint Community and documentation projects running, we expect to make the ESLint ecosystem even stronger. We are also planning to start on a &lt;a href=&quot;https://github.com/eslint/eslint/discussions/16557&quot;&gt;complete rewrite&lt;/a&gt; from the ground up to make sure that ESLint is ready for the next ten years of JavaScript development. This process will likely take place in small, incremental steps as we think through how JavaScript development has changed and will continue to evolve in the future.&lt;/p&gt;
&lt;p&gt;We are excited about the future of ESLint and we appreciate your ongoing support.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Updated (2024-02-29):&lt;/strong&gt; We revised how our financials were reported to correct for errors in our initial calculation and to bring the numbers in this post inline with our 2023 approach to calculating our financials.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.31.0 released</title>
    <link href="https://eslint.org/blog/2022/12/eslint-v8.31.0-released/"/>
    <updated>2022-12-31T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/12/eslint-v8.31.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle#options&quot;&gt;no-underscore-dangle&lt;/a&gt; rule gained two new options: &lt;code&gt;allowInArrayDestructuring&lt;/code&gt; and &lt;code&gt;allowInObjectDestructuring&lt;/code&gt;. Both of these default to &lt;code&gt;true&lt;/code&gt; to allow dangling underscores in array and object destructuring for backwards compatibility. Set them to &lt;code&gt;false&lt;/code&gt; to check for dangling underscores in destructuring assignments.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52c7c73c052e1ec2528c6b4af78181bc30cf8cdd&quot;&gt;&lt;code&gt;52c7c73&lt;/code&gt;&lt;/a&gt; feat: check assignment patterns in &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle&quot;&gt;no-underscore-dangle&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16693&quot;&gt;#16693&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b401cde47d44746ff91b8feced3fb3a4e32c0e12&quot;&gt;&lt;code&gt;b401cde&lt;/code&gt;&lt;/a&gt; feat: add options to check destructuring in &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle&quot;&gt;no-underscore-dangle&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16006&quot;&gt;#16006&lt;/a&gt;) (Morten Kaltoft)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/30d0daf55e85a412995f6d69f47cab3fb591f2c3&quot;&gt;&lt;code&gt;30d0daf&lt;/code&gt;&lt;/a&gt; feat: group properties with values in parentheses in &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;&lt;code&gt;key-spacing&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16677&quot;&gt;#16677&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/35439f1572e1a8888f7feb6c5e51a15b5582495d&quot;&gt;&lt;code&gt;35439f1&lt;/code&gt;&lt;/a&gt; fix: correct syntax error in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-arrow-callback&quot;&gt;&lt;code&gt;prefer-arrow-callback&lt;/code&gt;&lt;/a&gt; autofix (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16722&quot;&gt;#16722&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87b247058ed520061fe1a146b7f0e7072a94990d&quot;&gt;&lt;code&gt;87b2470&lt;/code&gt;&lt;/a&gt; fix: new instance of FlatESLint should load latest config file version (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16608&quot;&gt;#16608&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4339dc462d78888fe2e10acdfacd6f57245ce6ae&quot;&gt;&lt;code&gt;4339dc4&lt;/code&gt;&lt;/a&gt; docs: Update README (GitHub Actions Bot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e4049c5fa355b2091afc8948690fcd7b1c1e6df&quot;&gt;&lt;code&gt;4e4049c&lt;/code&gt;&lt;/a&gt; docs: optimize code block structure (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16669&quot;&gt;#16669&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54a7ade5d8e6f59554afeb9202ba6143f8afdf57&quot;&gt;&lt;code&gt;54a7ade&lt;/code&gt;&lt;/a&gt; docs: do not escape code blocks of formatters examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16719&quot;&gt;#16719&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5ecfefa1c952195a3a8371f5953cc655d844079&quot;&gt;&lt;code&gt;e5ecfef&lt;/code&gt;&lt;/a&gt; docs: Add function call example for &lt;a href=&quot;https://eslint.org/docs/rules/no-undefined&quot;&gt;no-undefined&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16712&quot;&gt;#16712&lt;/a&gt;) (Elliot Huffman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a3262f0a6305d2a721fac137a60c62c019b26aa4&quot;&gt;&lt;code&gt;a3262f0&lt;/code&gt;&lt;/a&gt; docs: Add mastodon link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16638&quot;&gt;#16638&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a14ccf91af1122e419710f58ef494980fc4894b3&quot;&gt;&lt;code&gt;a14ccf9&lt;/code&gt;&lt;/a&gt; docs: clarify files property (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16709&quot;&gt;#16709&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3b29eb14e00182614c986d8498b483a9917976e7&quot;&gt;&lt;code&gt;3b29eb1&lt;/code&gt;&lt;/a&gt; docs: fix npm link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16710&quot;&gt;#16710&lt;/a&gt;) (Abdullah Osama)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a638673ee6e94344c46d12dfc988adeb3783f817&quot;&gt;&lt;code&gt;a638673&lt;/code&gt;&lt;/a&gt; docs: fix search bar focus on &lt;code&gt;Esc&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16700&quot;&gt;#16700&lt;/a&gt;) (Shanmughapriyan S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f62b722251858a5dfb157591910edbaaeb4a966f&quot;&gt;&lt;code&gt;f62b722&lt;/code&gt;&lt;/a&gt; docs: country flag missing in windows (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16698&quot;&gt;#16698&lt;/a&gt;) (Shanmughapriyan S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d27ec6019847afabeebf592dddc014e9220057c&quot;&gt;&lt;code&gt;4d27ec6&lt;/code&gt;&lt;/a&gt; docs: display zh-hans in the docs language switcher (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16686&quot;&gt;#16686&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8bda20e8276c6ba17d31842fcdd63ba65476fbbd&quot;&gt;&lt;code&gt;8bda20e&lt;/code&gt;&lt;/a&gt; docs: remove manually maintained anchors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16685&quot;&gt;#16685&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b68440ff2b8322fc00373792701169205c94ed94&quot;&gt;&lt;code&gt;b68440f&lt;/code&gt;&lt;/a&gt; docs: User Guide Getting Started expansion (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16596&quot;&gt;#16596&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/65d4e24c36367cd63f0eba7371820e0e81dae7aa&quot;&gt;&lt;code&gt;65d4e24&lt;/code&gt;&lt;/a&gt; chore: Upgrade @eslint/eslintrc@1.4.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16729&quot;&gt;#16729&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d93081a717f6e8b8cb60c3075cc1d7e4e655e6b&quot;&gt;&lt;code&gt;8d93081&lt;/code&gt;&lt;/a&gt; chore: fix CI failure (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16721&quot;&gt;#16721&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f17247a93240ff8a08980d8e06352e4ff4e8fe3&quot;&gt;&lt;code&gt;8f17247&lt;/code&gt;&lt;/a&gt; chore: Set up automatic updating of README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16717&quot;&gt;#16717&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4cd87cb3c52412277577ba00c4fbb1aec36acc8c&quot;&gt;&lt;code&gt;4cd87cb&lt;/code&gt;&lt;/a&gt; ci: bump actions/stale from 6 to 7 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16713&quot;&gt;#16713&lt;/a&gt;) (dependabot[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd20c75b1059c54d598c0abaf63e7d7a80f04f32&quot;&gt;&lt;code&gt;fd20c75&lt;/code&gt;&lt;/a&gt; chore: sort package.json scripts in alphabetical order (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16705&quot;&gt;#16705&lt;/a&gt;) (Darius Dzien)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10a5c7839370219c79f44d4206cbd7c28a72bad5&quot;&gt;&lt;code&gt;10a5c78&lt;/code&gt;&lt;/a&gt; chore: update ignore patterns in &lt;code&gt;eslint.config.js&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16678&quot;&gt;#16678&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.30.0 released</title>
    <link href="https://eslint.org/blog/2022/12/eslint-v8.30.0-released/"/>
    <updated>2022-12-16T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/12/eslint-v8.30.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-return-await&quot;&gt;no-return-await&lt;/a&gt; rule now provides &lt;a href=&quot;https://eslint.org/docs/latest/developer-guide/working-with-rules#providing-suggestions&quot;&gt;suggestions&lt;/a&gt; for some of the problems reported by this rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/075ef2cf315e75b51b671c40ce9a97c66b2e4b50&quot;&gt;&lt;code&gt;075ef2c&lt;/code&gt;&lt;/a&gt; feat: add suggestion for &lt;a href=&quot;https://eslint.org/docs/rules/no-return-await&quot;&gt;no-return-await&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16637&quot;&gt;#16637&lt;/a&gt;) (Daniel Bartholomae)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7190d98ff40023f24b0c6a98319ae8a82c99ff5b&quot;&gt;&lt;code&gt;7190d98&lt;/code&gt;&lt;/a&gt; feat: update globals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16654&quot;&gt;#16654&lt;/a&gt;) (Sébastien Règne)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a327aae57f1b68c96b27cc1bd57f8198d5a3a7c&quot;&gt;&lt;code&gt;1a327aa&lt;/code&gt;&lt;/a&gt; fix: Ensure flat config unignores work consistently like eslintrc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16579&quot;&gt;#16579&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b8bb72c49a453086954b06a5d7dd390731b1975&quot;&gt;&lt;code&gt;9b8bb72&lt;/code&gt;&lt;/a&gt; fix: autofix recursive functions in &lt;a href=&quot;https://eslint.org/docs/rules/no-var&quot;&gt;no-var&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16611&quot;&gt;#16611&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a8cd94ed08983c70ca7d72dc6e360770a743405&quot;&gt;&lt;code&gt;6a8cd94&lt;/code&gt;&lt;/a&gt; docs: Clarify Discord info in issue template config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16663&quot;&gt;#16663&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad44344ef6fdeac7217eb83bc54a230382c0da5e&quot;&gt;&lt;code&gt;ad44344&lt;/code&gt;&lt;/a&gt; docs: CLI documentation standardization (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16563&quot;&gt;#16563&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/293573eb530d161d2a5b01efd9d3de49dadea022&quot;&gt;&lt;code&gt;293573e&lt;/code&gt;&lt;/a&gt; docs: fix broken line numbers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16606&quot;&gt;#16606&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fa2c64be10d5854fb586c20957737d7d2da1975a&quot;&gt;&lt;code&gt;fa2c64b&lt;/code&gt;&lt;/a&gt; docs: use relative links for internal links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16631&quot;&gt;#16631&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/75276c9bc7c4bc013fc6bdf277353c979934d73b&quot;&gt;&lt;code&gt;75276c9&lt;/code&gt;&lt;/a&gt; docs: reorder options in &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16625&quot;&gt;#16625&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7276fe5776f03fb90e575ed63a9b1a6766993e42&quot;&gt;&lt;code&gt;7276fe5&lt;/code&gt;&lt;/a&gt; docs: Fix anchor in URL (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16628&quot;&gt;#16628&lt;/a&gt;) (Karl Horky)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6bef1350e692c818c55c6d2074c12506e98cdf4f&quot;&gt;&lt;code&gt;6bef135&lt;/code&gt;&lt;/a&gt; docs: don’t apply layouts to html formatter example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16591&quot;&gt;#16591&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dfc7ec11b11b56daaa10e8e6d08c5cddfc8c2c59&quot;&gt;&lt;code&gt;dfc7ec1&lt;/code&gt;&lt;/a&gt; docs: Formatters page updates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16566&quot;&gt;#16566&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ba124cfd8aaf01d14ccbcb1654798624948fb0a&quot;&gt;&lt;code&gt;8ba124c&lt;/code&gt;&lt;/a&gt; docs: update the &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;&lt;code&gt;prefer-const&lt;/code&gt;&lt;/a&gt; example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16607&quot;&gt;#16607&lt;/a&gt;) (Pavel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6cb05aa35bafb9e88f161ad1fa6b01942a7c13c&quot;&gt;&lt;code&gt;e6cb05a&lt;/code&gt;&lt;/a&gt; docs: fix css leaking (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16603&quot;&gt;#16603&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2c47372420f050ad8f2300271345de1c1232635&quot;&gt;&lt;code&gt;f2c4737&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@1.4.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16675&quot;&gt;#16675&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba74253e8bd63e9e163bbee0540031be77e39253&quot;&gt;&lt;code&gt;ba74253&lt;/code&gt;&lt;/a&gt; chore: standardize npm script names per &lt;a href=&quot;https://github.com/eslint/eslint/issues/14827&quot;&gt;#14827&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16315&quot;&gt;#16315&lt;/a&gt;) (Patrick McElhaney)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d9af4c5674809be993439c766dcd9d7f65fcec9&quot;&gt;&lt;code&gt;0d9af4c&lt;/code&gt;&lt;/a&gt; ci: fix npm v9 problem with &lt;code&gt;file:&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16664&quot;&gt;#16664&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90c9219181e0aadcae7224602d2988186d457113&quot;&gt;&lt;code&gt;90c9219&lt;/code&gt;&lt;/a&gt; refactor: migrate off deprecated function-style rules in all tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16618&quot;&gt;#16618&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.29.0 released</title>
    <link href="https://eslint.org/blog/2022/12/eslint-v8.29.0-released/"/>
    <updated>2022-12-02T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/12/eslint-v8.29.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; rule has a new option &lt;code&gt;allowParensAfterCommentPattern&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/prefer-named-capture-group&quot;&gt;prefer-named-capture-group&lt;/a&gt; rule now provides &lt;a href=&quot;https://eslint.org/docs/latest/developer-guide/working-with-rules#providing-suggestions&quot;&gt;suggestions&lt;/a&gt; for some of the problems reported by this rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/49a07c52c5af7e98d161ff4acd44bbbe0aa6383b&quot;&gt;&lt;code&gt;49a07c5&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;allowParensAfterCommentPattern&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16561&quot;&gt;#16561&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6a865d70aed9e1c07be712e40c38da1a5dda849&quot;&gt;&lt;code&gt;e6a865d&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-named-capture-group&quot;&gt;&lt;code&gt;prefer-named-capture-group&lt;/code&gt;&lt;/a&gt; add suggestions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16544&quot;&gt;#16544&lt;/a&gt;) (Josh Goldberg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a91332b8bd9adfa2aa8110071bdf73f56d400050&quot;&gt;&lt;code&gt;a91332b&lt;/code&gt;&lt;/a&gt; feat: In &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;no-invalid-regexp&lt;/a&gt; validate flags also for non-literal patterns (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16583&quot;&gt;#16583&lt;/a&gt;) (trosos)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0311d81834d675b8ae7cc92a460b37115edc4018&quot;&gt;&lt;code&gt;0311d81&lt;/code&gt;&lt;/a&gt; docs: Configuring Plugins page intro, page tweaks, and rename (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16534&quot;&gt;#16534&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57089b1ede624452bc94404b6e60d01d48cfd468&quot;&gt;&lt;code&gt;57089b1&lt;/code&gt;&lt;/a&gt; docs: add a property assignment example for &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16605&quot;&gt;#16605&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b6ab030897d2e8b314b33a6502346a4ac45bb8da&quot;&gt;&lt;code&gt;b6ab030&lt;/code&gt;&lt;/a&gt; docs: add docs codeowners (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16601&quot;&gt;#16601&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6380c87c563be5dc78ce0ddd5c7409aaf71692bb&quot;&gt;&lt;code&gt;6380c87&lt;/code&gt;&lt;/a&gt; docs: fix sitemap and feed (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16592&quot;&gt;#16592&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ade621dd12fcd3b65644bb3468248cc040db756c&quot;&gt;&lt;code&gt;ade621d&lt;/code&gt;&lt;/a&gt; docs: perf debounce the search query (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16586&quot;&gt;#16586&lt;/a&gt;) (Shanmughapriyan S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fbcf3abd54dd20aec3c695cacece56493633c97f&quot;&gt;&lt;code&gt;fbcf3ab&lt;/code&gt;&lt;/a&gt; docs: fix searchbar clear button (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16585&quot;&gt;#16585&lt;/a&gt;) (Shanmughapriyan S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f89403553b31d24f4fc841424cc7dcb8c3ef689f&quot;&gt;&lt;code&gt;f894035&lt;/code&gt;&lt;/a&gt; docs: HTTPS link to &lt;a href=&quot;https://yeoman.io/&quot;&gt;yeoman.io&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16582&quot;&gt;#16582&lt;/a&gt;) (Christian Oliff)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de12b266f2aa6f063d0af888b8f0de41d09ec33f&quot;&gt;&lt;code&gt;de12b26&lt;/code&gt;&lt;/a&gt; docs: Update configuration file pages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16509&quot;&gt;#16509&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ae9f2067442434c6ccc6b41703624b302d17c67&quot;&gt;&lt;code&gt;1ae9f20&lt;/code&gt;&lt;/a&gt; docs: update correct code examples for &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;&lt;code&gt;no-extra-parens&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16560&quot;&gt;#16560&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7628403a57d9d9b4e2cb2b36309170900f58832e&quot;&gt;&lt;code&gt;7628403&lt;/code&gt;&lt;/a&gt; chore: add discord channel link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16590&quot;&gt;#16590&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5808cb51529174a67b4938223f06435ad6d5118&quot;&gt;&lt;code&gt;f5808cb&lt;/code&gt;&lt;/a&gt; chore: fix rule doc headers check (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16564&quot;&gt;#16564&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.28.0 released</title>
    <link href="https://eslint.org/blog/2022/11/eslint-v8.28.0-released/"/>
    <updated>2022-11-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/11/eslint-v8.28.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-magic-numbers&quot;&gt;no-magic-numbers&lt;/a&gt; rule has a new option &lt;code&gt;ignoreClassFieldInitialValues&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/63bce44e7b6326e1e94fc7f6283df8de7bbac273&quot;&gt;&lt;code&gt;63bce44&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;ignoreClassFieldInitialValues&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-magic-numbers&quot;&gt;no-magic-numbers&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16539&quot;&gt;#16539&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8385ecdbbe342211e20aebe76fa7affe8ec04c33&quot;&gt;&lt;code&gt;8385ecd&lt;/code&gt;&lt;/a&gt; feat: multiline properties in rule &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;&lt;code&gt;key-spacing&lt;/code&gt;&lt;/a&gt; with option &lt;code&gt;align&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16532&quot;&gt;#16532&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a4e89dbe85589dab982885872dc206e090c27b3c&quot;&gt;&lt;code&gt;a4e89db&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-obj-calls&quot;&gt;&lt;code&gt;no-obj-calls&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;Intl&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16543&quot;&gt;#16543&lt;/a&gt;) (Sosuke Suzuki)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c50ae4f840d1ee9dc7b80a46c887398c0ec0a67c&quot;&gt;&lt;code&gt;c50ae4f&lt;/code&gt;&lt;/a&gt; fix: Ensure that dot files are found with globs. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16550&quot;&gt;#16550&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9432b67f76ddd7b8a73d37e8a041a9ff25822f0c&quot;&gt;&lt;code&gt;9432b67&lt;/code&gt;&lt;/a&gt; fix: throw error for first unmatched pattern (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16533&quot;&gt;#16533&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e76c3827727b48c16af8467c02c31160e5595d83&quot;&gt;&lt;code&gt;e76c382&lt;/code&gt;&lt;/a&gt; fix: allow &lt;code&gt;* 1&lt;/code&gt; when followed by &lt;code&gt;/&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;no-implicit-coercion&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16522&quot;&gt;#16522&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/34c05a779ada3142995392ae12978461900088df&quot;&gt;&lt;code&gt;34c05a7&lt;/code&gt;&lt;/a&gt; docs: Language Options page intro and tweaks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16511&quot;&gt;#16511&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e663873c97773ab1ecdff54aaa122075d5bb389&quot;&gt;&lt;code&gt;3e66387&lt;/code&gt;&lt;/a&gt; docs: add intro and edit ignoring files page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16510&quot;&gt;#16510&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/436f712843360f98b2bd63256bf0c4f77013b54c&quot;&gt;&lt;code&gt;436f712&lt;/code&gt;&lt;/a&gt; docs: fix Header UI inconsistency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16464&quot;&gt;#16464&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f74381696703d8eed0e175d42f96904a3d1cb4cb&quot;&gt;&lt;code&gt;f743816&lt;/code&gt;&lt;/a&gt; docs: switch to wrench emoji for auto-fixable rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16545&quot;&gt;#16545&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bc0547eb149a1e04211826662d2d798fb331983d&quot;&gt;&lt;code&gt;bc0547e&lt;/code&gt;&lt;/a&gt; docs: improve styles for versions and languages page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16553&quot;&gt;#16553&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6070f58d802d77c6c781c6bc1f554eef8b3d8f68&quot;&gt;&lt;code&gt;6070f58&lt;/code&gt;&lt;/a&gt; docs: clarify esquery issue workaround (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16556&quot;&gt;#16556&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b48e4f89c59bd1c5408e3db492a0e95a402820bd&quot;&gt;&lt;code&gt;b48e4f8&lt;/code&gt;&lt;/a&gt; docs: Command Line Interface intro and tweaks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16535&quot;&gt;#16535&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b92b30f93db64314827305b552cbb832c63fa949&quot;&gt;&lt;code&gt;b92b30f&lt;/code&gt;&lt;/a&gt; docs: Add Rules page intro and content tweaks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16523&quot;&gt;#16523&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1769b423392512db4adf1eff75896c1ac0c3606b&quot;&gt;&lt;code&gt;1769b42&lt;/code&gt;&lt;/a&gt; docs: Integrations page introduction (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16548&quot;&gt;#16548&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8d0a57cbc29a917258df41d3254ecd29bcf61ab&quot;&gt;&lt;code&gt;a8d0a57&lt;/code&gt;&lt;/a&gt; docs: make table of contents sticky on desktop (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16506&quot;&gt;#16506&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a01315a7d8f3a70468b7a644fde01d6983778c6b&quot;&gt;&lt;code&gt;a01315a&lt;/code&gt;&lt;/a&gt; docs: fix route of japanese translation site (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16542&quot;&gt;#16542&lt;/a&gt;) (Tanuj Kanti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05156285396eba9ce3d3a0990a8c89d5bc229636&quot;&gt;&lt;code&gt;0515628&lt;/code&gt;&lt;/a&gt; docs: use emoji instead of svg for deprecated rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16536&quot;&gt;#16536&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68f12882fbaeda8ffb26425d42d261346ff5af51&quot;&gt;&lt;code&gt;68f1288&lt;/code&gt;&lt;/a&gt; docs: set default layouts (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16484&quot;&gt;#16484&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/776827a1748da88a25e7903bd794f5439de922b5&quot;&gt;&lt;code&gt;776827a&lt;/code&gt;&lt;/a&gt; docs: init config about specifying shared configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16483&quot;&gt;#16483&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c39425fc55ecc0b97bbd07ac22654c0eb4f789c&quot;&gt;&lt;code&gt;5c39425&lt;/code&gt;&lt;/a&gt; docs: fix broken link to plugins (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16520&quot;&gt;#16520&lt;/a&gt;) (Ádám T. Nagy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c97c7897686ac4dc2828537d6a017f3c99f7d905&quot;&gt;&lt;code&gt;c97c789&lt;/code&gt;&lt;/a&gt; docs: Add missing &lt;a href=&quot;https://eslint.org/docs/rules/no-new-native-nonconstructor&quot;&gt;no-new-native-nonconstructor&lt;/a&gt; docs code fence (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16503&quot;&gt;#16503&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e94a4a95ee301b0344d3292c37a0b29d8e18ab30&quot;&gt;&lt;code&gt;e94a4a9&lt;/code&gt;&lt;/a&gt; chore: Add tests to verify &lt;a href=&quot;https://github.com/eslint/eslint/issues/16038&quot;&gt;#16038&lt;/a&gt; is fixed (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16538&quot;&gt;#16538&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e13f194f89f591730aa955f7b62192c7e8296069&quot;&gt;&lt;code&gt;e13f194&lt;/code&gt;&lt;/a&gt; chore: stricter validation of &lt;code&gt;meta.docs.description&lt;/code&gt; in core rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16529&quot;&gt;#16529&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/72dbfbc0c45d2b9d19b21c6a5a6b4ca71403ffbf&quot;&gt;&lt;code&gt;72dbfbc&lt;/code&gt;&lt;/a&gt; chore: use &lt;code&gt;pkg&lt;/code&gt; parameter in &lt;code&gt;getNpmPackageVersion&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16525&quot;&gt;#16525&lt;/a&gt;) (webxmsj)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.27.0 released</title>
    <link href="https://eslint.org/blog/2022/11/eslint-v8.27.0-released/"/>
    <updated>2022-11-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/11/eslint-v8.27.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The new &lt;a href=&quot;https://eslint.org/docs/rules/no-new-native-nonconstructor&quot;&gt;&lt;code&gt;no-new-native-nonconstructor&lt;/code&gt;&lt;/a&gt; rule protects against &lt;code&gt;new&lt;/code&gt;ing &lt;code&gt;BigInt&lt;/code&gt;s and &lt;code&gt;Symbol&lt;/code&gt;s, which would throw an error. The existing &lt;code&gt;no-new-symbol&lt;/code&gt; rule only checks for &lt;code&gt;new Symbol&lt;/code&gt;. &lt;code&gt;no-new-native-nonconstructor&lt;/code&gt; will take the place of &lt;code&gt;no-new-symbol&lt;/code&gt; in &lt;code&gt;eslint:recommended&lt;/code&gt; in the next major release.&lt;/li&gt;
&lt;li&gt;The new &lt;a href=&quot;https://eslint.org/docs/rules/no-empty-static-block&quot;&gt;&lt;code&gt;no-empty-static-block&lt;/code&gt;&lt;/a&gt; rule disallows empty ES2022 class static initialization blocks.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f14587c42bb0fe6ec89529aede045a488083d6ee&quot;&gt;&lt;code&gt;f14587c&lt;/code&gt;&lt;/a&gt; feat: new &lt;a href=&quot;https://eslint.org/docs/rules/no-new-native-nonconstructor&quot;&gt;&lt;code&gt;no-new-native-nonconstructor&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16368&quot;&gt;#16368&lt;/a&gt;) (Sosuke Suzuki)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/978799bd5c76fecf4ce8f17d89ad6c9f436c3228&quot;&gt;&lt;code&gt;978799b&lt;/code&gt;&lt;/a&gt; feat: add new rule &lt;a href=&quot;https://eslint.org/docs/rules/no-empty-static-block&quot;&gt;&lt;code&gt;no-empty-static-block&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16325&quot;&gt;#16325&lt;/a&gt;) (Sosuke Suzuki)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/69216ee69c7172e847b64e0e934b5121a34d0ea3&quot;&gt;&lt;code&gt;69216ee&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-empty&quot;&gt;no-empty&lt;/a&gt; suggest to add comment in empty BlockStatement (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16470&quot;&gt;#16470&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/319f0a5491598825bbd528c6d1fc12771056a74c&quot;&gt;&lt;code&gt;319f0a5&lt;/code&gt;&lt;/a&gt; feat: use &lt;code&gt;context.languageOptions.ecmaVersion&lt;/code&gt; in core rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16458&quot;&gt;#16458&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c3ce5212f672d95dde3465d7d3c4bf99ff665f8b&quot;&gt;&lt;code&gt;c3ce521&lt;/code&gt;&lt;/a&gt; fix: Ensure unmatched glob patterns throw an error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16462&quot;&gt;#16462&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/886a0386897f96d2da95eba8c52bd893fcbf7e86&quot;&gt;&lt;code&gt;886a038&lt;/code&gt;&lt;/a&gt; fix: handle files with unspecified path in &lt;code&gt;getRulesMetaForResults&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16437&quot;&gt;#16437&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce93b429bf917640473dd7e26b49bba993c68ce4&quot;&gt;&lt;code&gt;ce93b42&lt;/code&gt;&lt;/a&gt; docs: Stylelint property-no-unknown (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16497&quot;&gt;#16497&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d2cecb4ad2a6d33444cf0288a863c43acb3b468a&quot;&gt;&lt;code&gt;d2cecb4&lt;/code&gt;&lt;/a&gt; docs: Stylelint declaration-block-no-shorthand-property-overrides (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16498&quot;&gt;#16498&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a92805d7713118866e519b0ff2a61c5d6238ad9&quot;&gt;&lt;code&gt;0a92805&lt;/code&gt;&lt;/a&gt; docs: stylelint color-hex-case (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16496&quot;&gt;#16496&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74a5af487ac7296a46a8078e585f00df72b63d83&quot;&gt;&lt;code&gt;74a5af4&lt;/code&gt;&lt;/a&gt; docs: fix stylelint error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16491&quot;&gt;#16491&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/324db1a11e43ba9d954dc522763faea19129ce6a&quot;&gt;&lt;code&gt;324db1a&lt;/code&gt;&lt;/a&gt; docs: explicit stylelint color related rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16465&quot;&gt;#16465&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/94dc4f19ba49fe2358f8bcc2fc3555d222766755&quot;&gt;&lt;code&gt;94dc4f1&lt;/code&gt;&lt;/a&gt; docs: use Stylelint for HTML files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16468&quot;&gt;#16468&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc6128db4f489c3ab80fff2f9dbeea313e72208d&quot;&gt;&lt;code&gt;cc6128d&lt;/code&gt;&lt;/a&gt; docs: enable stylelint declaration-block-no-duplicate-properties (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16466&quot;&gt;#16466&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d03a8bf8978bd330aeb951f18cc92bf1ad24eeec&quot;&gt;&lt;code&gt;d03a8bf&lt;/code&gt;&lt;/a&gt; docs: Add heading to justification explanation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16430&quot;&gt;#16430&lt;/a&gt;) (Maritaria)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8a159686f9d497262d573dd601855ce28362199b&quot;&gt;&lt;code&gt;8a15968&lt;/code&gt;&lt;/a&gt; docs: add Stylelint configuration and cleanup (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16379&quot;&gt;#16379&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b0a469d1e4650c1d9da26239357e715b11b2d97&quot;&gt;&lt;code&gt;9b0a469&lt;/code&gt;&lt;/a&gt; docs: note commit messages don’t support scope (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16435&quot;&gt;#16435&lt;/a&gt;) (Andy Edwards)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/15814057fd69319b3744bdea5db2455f85d2e74f&quot;&gt;&lt;code&gt;1581405&lt;/code&gt;&lt;/a&gt; docs: improve context.getScope() docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16417&quot;&gt;#16417&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7971496e9b44add405ca0360294f5c3be85b540&quot;&gt;&lt;code&gt;b797149&lt;/code&gt;&lt;/a&gt; docs: update formatters template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16454&quot;&gt;#16454&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ac4de911f712cb3a5a16eb7a4063eee09dfc97c&quot;&gt;&lt;code&gt;5ac4de9&lt;/code&gt;&lt;/a&gt; docs: fix link to formatters on the Core Concepts page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16455&quot;&gt;#16455&lt;/a&gt;) (Vladislav)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/33313ef56258a6a96b00a3e70025b94bd2f2fe9f&quot;&gt;&lt;code&gt;33313ef&lt;/code&gt;&lt;/a&gt; docs: core-concepts: fix link to &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;semi&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16453&quot;&gt;#16453&lt;/a&gt;) (coderaiser)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.26.0 released</title>
    <link href="https://eslint.org/blog/2022/10/eslint-v8.26.0-released/"/>
    <updated>2022-10-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/10/eslint-v8.26.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-implicit-globals&quot;&gt;no-implicit-globals&lt;/a&gt; rule now supports &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-implicit-globals#exported&quot;&gt;&lt;code&gt;/* exported */&lt;/code&gt;&lt;/a&gt; directive comments.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;ESLINT_USE_FLAT_CONFIG&lt;/code&gt; environment variable can now be used for more control over switching between the current and the &lt;a href=&quot;https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new&quot;&gt;new config system&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https://github.com/eslint/create-config#eslintcreate-config&quot;&gt;@eslint/create-config&lt;/a&gt; utility to create ESLint config files has a new option &lt;code&gt;--config&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-shell&quot;&gt;&lt;code class=&quot;language-shell&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# npm 6.x&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; init @eslint/config &lt;span class=&quot;token parameter variable&quot;&gt;--config&lt;/span&gt; semistandard&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# npm 7+&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; init @eslint/config -- &lt;span class=&quot;token parameter variable&quot;&gt;--config&lt;/span&gt; semistandard&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4715787724a71494ba0bb0c5fe4639570bb6985b&quot;&gt;&lt;code&gt;4715787&lt;/code&gt;&lt;/a&gt; feat: check &lt;code&gt;Object.create()&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/getter-return&quot;&gt;getter-return&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16420&quot;&gt;#16420&lt;/a&gt;) (Yuki Hirasawa)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28d190264017dbaa29f2ab218f73b623143cd1af&quot;&gt;&lt;code&gt;28d1902&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-globals&quot;&gt;&lt;code&gt;no-implicit-globals&lt;/code&gt;&lt;/a&gt; supports &lt;code&gt;exported&lt;/code&gt; block comment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16343&quot;&gt;#16343&lt;/a&gt;) (Sosuke Suzuki)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e940be7a83d0caea15b64c1e1c2785a6540e2641&quot;&gt;&lt;code&gt;e940be7&lt;/code&gt;&lt;/a&gt; feat: Use ESLINT_USE_FLAT_CONFIG environment variable for flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16356&quot;&gt;#16356&lt;/a&gt;) (Tomer Aberbach)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd0c58f0f34d24331ae55139af39cf2747125f5e&quot;&gt;&lt;code&gt;dd0c58f&lt;/code&gt;&lt;/a&gt; feat: Swap out Globby for custom globbing solution. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16369&quot;&gt;#16369&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df7740967ffab2915974c7b310ac76ea2915ac2d&quot;&gt;&lt;code&gt;df77409&lt;/code&gt;&lt;/a&gt; fix: use &lt;code&gt;baseConfig&lt;/code&gt; constructor option in FlatESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16432&quot;&gt;#16432&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/33668ee9d22e1988ba03e07fb547738bdb21dc0e&quot;&gt;&lt;code&gt;33668ee&lt;/code&gt;&lt;/a&gt; fix: Ensure that glob patterns are matched correctly. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16449&quot;&gt;#16449&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/740b20826fadc5322ea5547c1ba41793944e571d&quot;&gt;&lt;code&gt;740b208&lt;/code&gt;&lt;/a&gt; fix: ignore messages without a &lt;code&gt;ruleId&lt;/code&gt; in &lt;code&gt;getRulesMetaForResults&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16409&quot;&gt;#16409&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f9759e2a94586357d85fac902e038fabdba79a7&quot;&gt;&lt;code&gt;8f9759e&lt;/code&gt;&lt;/a&gt; fix: &lt;code&gt;--ignore-pattern&lt;/code&gt; in flat config mode should be relative to &lt;code&gt;cwd&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16425&quot;&gt;#16425&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/325ad375a52d1c7b8b8fd23943350c91781366a2&quot;&gt;&lt;code&gt;325ad37&lt;/code&gt;&lt;/a&gt; fix: make &lt;code&gt;getRulesMetaForResults&lt;/code&gt; return a plain object in trivial case (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16438&quot;&gt;#16438&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2810bc485d9f1123a86b60702fcaa51e19d71a3&quot;&gt;&lt;code&gt;a2810bc&lt;/code&gt;&lt;/a&gt; fix: Ensure that directories can be unignored. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16436&quot;&gt;#16436&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/35916ad9bfc07dab63361721df1bd7f21e43e094&quot;&gt;&lt;code&gt;35916ad&lt;/code&gt;&lt;/a&gt; fix: Ensure unignore and reignore work correctly in flat config. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16422&quot;&gt;#16422&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/651649b12797594a86c0d659d6a0d1cdbda6f57b&quot;&gt;&lt;code&gt;651649b&lt;/code&gt;&lt;/a&gt; docs: Core concepts page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16399&quot;&gt;#16399&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/631cf72e82f316a2cc08770e5c81b858637ab04a&quot;&gt;&lt;code&gt;631cf72&lt;/code&gt;&lt;/a&gt; docs: note --ignore-path not supported with flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16434&quot;&gt;#16434&lt;/a&gt;) (Andy Edwards)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1692840a2f763737a4891419dc304db4ebedab5d&quot;&gt;&lt;code&gt;1692840&lt;/code&gt;&lt;/a&gt; docs: fix syntax in examples for new config files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16427&quot;&gt;#16427&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d336cfc9145a72bf8730250ee1e331a135e6ee2c&quot;&gt;&lt;code&gt;d336cfc&lt;/code&gt;&lt;/a&gt; docs: Document extending plugin with new config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16394&quot;&gt;#16394&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e917a9a2e555d398c64b985fc933d44a42c958f0&quot;&gt;&lt;code&gt;e917a9a&lt;/code&gt;&lt;/a&gt; ci: add node v19 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16443&quot;&gt;#16443&lt;/a&gt;) (Koichi ITO)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b70b91a6e28669ab8e2a4ce2a6d9ed40be20fa7&quot;&gt;&lt;code&gt;4b70b91&lt;/code&gt;&lt;/a&gt; chore: Add VS Code issues link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16423&quot;&gt;#16423&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/232d2916ac5e44db55c2ffbd2f3b37ad70037b7b&quot;&gt;&lt;code&gt;232d291&lt;/code&gt;&lt;/a&gt; chore: suppress a Node.js deprecation warning (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16398&quot;&gt;#16398&lt;/a&gt;) (Koichi ITO)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint use at Cesium through years of a changing ecosystem</title>
    <link href="https://eslint.org/blog/2022/10/cesium-eslint-case-study/"/>
    <updated>2022-10-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/10/cesium-eslint-case-study/</id>
    <content type="html">&lt;h2 id=&quot;background&quot; tabindex=&quot;-1&quot;&gt;Background&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://cesium.com/platform/cesiumjs/&quot;&gt;CesiumJS&lt;/a&gt; is an open source JavaScript library for 3D geospatial visualization. Cesium’s roots are in aerospace with our first use case being accurate visualization of satellites and spacecraft. Now with more than 4,000,000 downloads and 9000 stars on GitHub, CesiumJS has a large community of users and contributors. Users from all over the world have used CesiumJS for a variety of different applications, from mapping and data analysis to &lt;a href=&quot;https://cesium.com/blog/2022/08/11/sedaro-satellite-visualizes-spacecraft-digital-twins-cesiumjs/&quot;&gt;building interactive simulations for satellites&lt;/a&gt;, &lt;a href=&quot;https://cesium.com/blog/2022/07/27/oneplan-and-cesium-delivering-geospatial-for-events/&quot;&gt;event planning&lt;/a&gt;, &lt;a href=&quot;https://cesium.com/blog/2022/03/08/cesium-story-depicts-damage-in-ukraine/&quot;&gt;open source intelligence&lt;/a&gt; and even for building &lt;a href=&quot;https://cesium.com/blog/2021/12/06/geofs-is-a-flight-simulator-that-showcases-global-satellite/&quot;&gt;flight simulators&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;switching-to-eslint&quot; tabindex=&quot;-1&quot;&gt;Switching to ESLint&lt;/h2&gt;
&lt;p&gt;As an open source project with frequent external contributions, it is important that we have clear and consistent coding conventions along with automated ways of enforcing them. Development started in 2011, and the first version of Cesium was released in 2014. As new browser APIs and standards have emerged, ensuring that CesiumJS stays compatible with modern use cases has been very important to us.&lt;/p&gt;
&lt;p&gt;Initially, CesiumJS used JSHint for static analysis, because it was the standard at the time. In 2017, we switched over to ESLint because it was better at keeping pace with the rapid nature of ECMAScript standards development. ESLint enabled enforcement of style rules through linting and applying automatic fixes for a lot of those rules. Perhaps most important of all was the ability to create extensible configurations that fit our own coding standards and extend configurations made by others in the community. In this post, I will explain how we, the maintainers of CesiumJS, use ESLint for ensuring code quality, enforcing consistency, and reducing developer burden in adhering to our code style and standards across our open source and private projects.&lt;/p&gt;
&lt;h2 id=&quot;how-we-use-eslint&quot; tabindex=&quot;-1&quot;&gt;How we use ESLint&lt;/h2&gt;
&lt;p&gt;The earlier in the development process a developer is able to catch an issue, the less expensive it is to fix it. This “shifting left” strategy is a key priority for us and that is why we incorporate linting into the developer workflow so that developers are informed of potential issues in their code as they write it or before they commit it.&lt;/p&gt;
&lt;p&gt;First, Visual Studio Code is the IDE of choice at Cesium, so we include the official ESLint VS Code extension in &lt;code&gt;.vscode/extensions.json&lt;/code&gt; so that users are prompted to install the extension when they clone the repository and open it in VS Code.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2022/eslint-vscode.png&quot; alt=&quot;VSCode ESLint extension&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Second, we use the &lt;a href=&quot;https://github.com/typicode/husky&quot;&gt;husky&lt;/a&gt; package to install pre-commit hooks to ensure that the lint command is run every time code is committed to the repository.&lt;/p&gt;
&lt;p&gt;Last, we also run the lint script as part of our CI step.&lt;/p&gt;
&lt;p&gt;These tools are replicated for all our repositories to ensure a consistent and efficient experience in development and in review. Maintaining consistency in the code and the tools reduces the burden on developers working on different projects and makes it easier to onramp developers on new projects.&lt;/p&gt;
&lt;p&gt;At Cesium, we maintain two &lt;a href=&quot;https://github.com/CesiumGS/eslint-config-cesium&quot;&gt;open source shareable ESLint configurations&lt;/a&gt;: one for Node.js projects and another for browser environments. Often, both configurations are used in the same repository as there is often server/script code to accompany the client/web code. Our configurations rely heavily on the default ESLint recommended ruleset. Because we use Prettier for code formatting in all our projects, we also add the Prettier ruleset to ensure that there are no conflicts between the linter and the formatter. Projects often also end up extending the base source configuration to create a testing configuration for the Jasmine environment.&lt;/p&gt;
&lt;p&gt;Prior to 2022, CesiumJS had been locked to ECMAScript 2009, primarily due to browser constraints imposed by supporting Internet Explorer. We used &lt;a href=&quot;https://eslint-plugin-es.mysticatea.dev/&quot;&gt;eslint-plugin-es&lt;/a&gt; to restrict or allow specific language features. Once we dropped support for Internet Explorer, we were free to upgrade to a more modern version of ECMAScript. We set our version to ECMAScript 2020, and through ESLint the process was mostly automated thanks to the fix command. There were a lot of benefits that were instantly apparent to us; to name a couple of examples, GLSL shader strings were much easier to read because of the string template syntax and let and const made the code a lot more readable through clearer scoping and enforcing immutable references where needed.&lt;/p&gt;
&lt;p&gt;Our current ESLint configuration allows users to use all modern features available up to ES2020. But since CesiumJS is a 3D engine, it’s important that developers balance the convenience of ES6+ code syntax with its performance impact. In areas of the code that are run enough times to make a significant impact, such as per-frame rendering loop code, a simple for loop may be better than an &lt;code&gt;Array.forEach()&lt;/code&gt;. We don’t impose blanket rules on situations like this since the nuance is difficult to automate. Instead we document the best practices in our &lt;a href=&quot;https://github.com/CesiumGS/cesium/blob/main/Documentation/Contributors/CodingGuide/README.md#linting&quot;&gt;coding guide&lt;/a&gt; and  have developers and reviewers measure the impact of such choices on a case-by-case basis.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;ESLint is an extremely important part of our development process. It’s a tool that helps us maintain a very large code base that is well-tested, stable, performant and has a strong coding style. It also helps us attract contributors and enables us to be confident in the code we ourselves write and review. If you’re interested in learning more about Cesium, head over to our &lt;a href=&quot;https://cesium.com/blog&quot;&gt;blog&lt;/a&gt; for more information.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.25.0 released</title>
    <link href="https://eslint.org/blog/2022/10/eslint-v8.25.0-released/"/>
    <updated>2022-10-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/10/eslint-v8.25.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Formatters now have access to the &lt;code&gt;--max-warnings&lt;/code&gt; threshold when it is exceeded. See &lt;a href=&quot;https://eslint.org/docs/latest/developer-guide/working-with-custom-formatters#the-context-argument&quot;&gt;Working with Custom Formatters - The &lt;code&gt;context&lt;/code&gt; Argument&lt;/a&gt; for details.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new&quot;&gt;new config system&lt;/a&gt; no longer supports &lt;code&gt;.eslintignore&lt;/code&gt; files, &lt;code&gt;--ignore-path&lt;/code&gt; CLI option and &lt;code&gt;ignorePath&lt;/code&gt; API option, due to observed incompatibilities with &lt;code&gt;ignores&lt;/code&gt; in &lt;code&gt;eslint.config.js&lt;/code&gt; configuration files. For ignoring files in the new config system, please see &lt;a href=&quot;https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#globally-ignoring-files-with-ignores&quot;&gt;Globally ignoring files with ignores&lt;/a&gt;. We are still working on several other issues related to this feature.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/173e82040895ad53b2d9940bfb3fb67a0478f00b&quot;&gt;&lt;code&gt;173e820&lt;/code&gt;&lt;/a&gt; feat: Pass --max-warnings value to formatters (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16348&quot;&gt;#16348&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6964cb1e0f073b236cb3288b9d8be495336bbf29&quot;&gt;&lt;code&gt;6964cb1&lt;/code&gt;&lt;/a&gt; feat: remove support for ignore files in FlatESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16355&quot;&gt;#16355&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1cc4b3a8f82a7945dcd8c59550b6a906a0fabbb4&quot;&gt;&lt;code&gt;1cc4b3a&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;&lt;code&gt;id-length&lt;/code&gt;&lt;/a&gt; counts graphemes instead of code units (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16321&quot;&gt;#16321&lt;/a&gt;) (Sosuke Suzuki)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90c602802b6e330b79c42f282e9a615c583e32d7&quot;&gt;&lt;code&gt;90c6028&lt;/code&gt;&lt;/a&gt; docs: Conflicting fixes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16366&quot;&gt;#16366&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a3fe70c5261acbf115fa5f47231cbc4ac62c1bc&quot;&gt;&lt;code&gt;5a3fe70&lt;/code&gt;&lt;/a&gt; docs: Add VS to integrations page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16381&quot;&gt;#16381&lt;/a&gt;) (Maria José Solano)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/49bd1e5669b34fd7e0f4a3cf42009866980d7e15&quot;&gt;&lt;code&gt;49bd1e5&lt;/code&gt;&lt;/a&gt; docs: remove unused link definitions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16376&quot;&gt;#16376&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3bd380d3ea7e88ade4905ec0b240c866ab79a69d&quot;&gt;&lt;code&gt;3bd380d&lt;/code&gt;&lt;/a&gt; docs: typo cleanups for docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16374&quot;&gt;#16374&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3a08376cfb61275a7557d6d166b6116f36e5ac2&quot;&gt;&lt;code&gt;b3a0837&lt;/code&gt;&lt;/a&gt; docs: remove duplicate words (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16378&quot;&gt;#16378&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a682562458948f74a227be60a80e10e7a3753124&quot;&gt;&lt;code&gt;a682562&lt;/code&gt;&lt;/a&gt; docs: add &lt;code&gt;BigInt&lt;/code&gt; to &lt;a href=&quot;https://eslint.org/docs/rules/new-cap&quot;&gt;&lt;code&gt;new-cap&lt;/code&gt;&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16362&quot;&gt;#16362&lt;/a&gt;) (Sosuke Suzuki)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6d57fb657c2f4e8e0140ad057da34c935482972&quot;&gt;&lt;code&gt;f6d57fb&lt;/code&gt;&lt;/a&gt; docs: Update docs README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16352&quot;&gt;#16352&lt;/a&gt;) (Ben Perlmutter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/721434705bd569e33911e25d2688e33f10898d52&quot;&gt;&lt;code&gt;7214347&lt;/code&gt;&lt;/a&gt; docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/logical-assignment-operators&quot;&gt;logical-assignment-operators&lt;/a&gt; option typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16346&quot;&gt;#16346&lt;/a&gt;) (Jonathan Wilsson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f785944f61c97996445e48cb74fc300142e7310&quot;&gt;&lt;code&gt;1f78594&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@1.3.3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16397&quot;&gt;#16397&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8476a9b8b81164887cdf38a21d431b75ff2956b1&quot;&gt;&lt;code&gt;8476a9b&lt;/code&gt;&lt;/a&gt; chore: Remove CODEOWNERS (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16375&quot;&gt;#16375&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/720ff75beb9f4fdcf2a185fcb8020cf78483fdeb&quot;&gt;&lt;code&gt;720ff75&lt;/code&gt;&lt;/a&gt; chore: use “ci” for Dependabot commit message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16377&quot;&gt;#16377&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/42f547948f284f1c67799f237dfeb86fc400c7c7&quot;&gt;&lt;code&gt;42f5479&lt;/code&gt;&lt;/a&gt; chore: bump actions/stale from 5 to 6 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16350&quot;&gt;#16350&lt;/a&gt;) (dependabot[bot])&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5e9e271da58361bda16f7abc8f367ccc6f91510&quot;&gt;&lt;code&gt;e5e9e27&lt;/code&gt;&lt;/a&gt; chore: remove &lt;code&gt;jsdoc&lt;/code&gt; dev dependency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16344&quot;&gt;#16344&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.24.0 released</title>
    <link href="https://eslint.org/blog/2022/09/eslint-v8.24.0-released/"/>
    <updated>2022-09-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/09/eslint-v8.24.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;One new rule has been added: &lt;a href=&quot;https://eslint.org/docs/latest/rules/logical-assignment-operators&quot;&gt;logical-assignment-operators&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1729f9ea4d7b2945b2b701d72027fd4aace954cf&quot;&gt;&lt;code&gt;1729f9e&lt;/code&gt;&lt;/a&gt; feat: account for &lt;code&gt;sourceType: &amp;quot;commonjs&amp;quot;&lt;/code&gt; in the &lt;a href=&quot;https://eslint.org/docs/rules/strict&quot;&gt;strict&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16308&quot;&gt;#16308&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0d72c96b2a9cde7a5798c2b08ec4e70683c6aca&quot;&gt;&lt;code&gt;b0d72c9&lt;/code&gt;&lt;/a&gt; feat: add rule &lt;a href=&quot;https://eslint.org/docs/rules/logical-assignment-operators&quot;&gt;logical-assignment-operators&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16102&quot;&gt;#16102&lt;/a&gt;) (fnx)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f02bcd91bf89b6c167d5346a36677fdb854f0c05&quot;&gt;&lt;code&gt;f02bcd9&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt; support &lt;code&gt;findLast&lt;/code&gt; and &lt;code&gt;findLastIndex&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16314&quot;&gt;#16314&lt;/a&gt;) (Sosuke Suzuki)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c152ff0fb709b99e62c19ecd2c95689efacbe4c&quot;&gt;&lt;code&gt;2c152ff&lt;/code&gt;&lt;/a&gt; docs: note false positive &lt;code&gt;Object.getOwnPropertyNames&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-reflect&quot;&gt;prefer-reflect&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16317&quot;&gt;#16317&lt;/a&gt;) (AnnAngela)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf7bd885a92046a6b6bcbcaaa1e78e9f2c4b482f&quot;&gt;&lt;code&gt;bf7bd88&lt;/code&gt;&lt;/a&gt; docs: fix warn severity description for new config files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16324&quot;&gt;#16324&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8cc0bbe440dc5e6af6ef02f00d0514a40ca07c24&quot;&gt;&lt;code&gt;8cc0bbe&lt;/code&gt;&lt;/a&gt; docs: use more clean link syntax (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16309&quot;&gt;#16309&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ba269ed673f965d081287b769c12beeb5f98887&quot;&gt;&lt;code&gt;6ba269e&lt;/code&gt;&lt;/a&gt; docs: fix typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16288&quot;&gt;#16288&lt;/a&gt;) (jjangga0214)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/131e646e227b9aca3937fe287343bf2c3df408af&quot;&gt;&lt;code&gt;131e646&lt;/code&gt;&lt;/a&gt; chore: Upgrade @humanwhocodes/config-array for perf (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16339&quot;&gt;#16339&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/504fe59b0e0f4f5a2afb6a69aaed5cb4ca631012&quot;&gt;&lt;code&gt;504fe59&lt;/code&gt;&lt;/a&gt; perf: switch from object spread to &lt;code&gt;Object.assign&lt;/code&gt; when merging globals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16311&quot;&gt;#16311&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.23.1 released</title>
    <link href="https://eslint.org/blog/2022/09/eslint-v8.23.1-released/"/>
    <updated>2022-09-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/09/eslint-v8.23.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This release includes a &lt;a href=&quot;https://github.com/eslint/eslint/issues/16255#issuecomment-1233037364&quot;&gt;significant performance improvement&lt;/a&gt; in the &lt;code&gt;indent&lt;/code&gt; rule as well as some bug fixes for the &lt;a href=&quot;https://deploy-preview-343--new-eslint.netlify.app/docs/latest/user-guide/configuring/configuration-files-new&quot;&gt;new &lt;code&gt;eslint.config.js&lt;/code&gt; config system&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b71989388a921886caa4c6cb48729bbf60c46100&quot;&gt;&lt;code&gt;b719893&lt;/code&gt;&lt;/a&gt; fix: Upgrade eslintrc to stop redefining plugins (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16297&quot;&gt;#16297&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/734b54eb9c6c4839c0f99ebe18dc5695754aac1d&quot;&gt;&lt;code&gt;734b54e&lt;/code&gt;&lt;/a&gt; fix: improve autofix for the &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;&lt;code&gt;prefer-const&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16292&quot;&gt;#16292&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a923ff9257a4f009cefed049ebb59a4b5acdab5&quot;&gt;&lt;code&gt;6a923ff&lt;/code&gt;&lt;/a&gt; fix: Ensure that glob patterns are normalized (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16287&quot;&gt;#16287&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c6900f89a89f3de5d3c50c69a1bc62eac6eb76d7&quot;&gt;&lt;code&gt;c6900f8&lt;/code&gt;&lt;/a&gt; fix: Ensure globbing doesn’t include subdirectories (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16272&quot;&gt;#16272&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16cba3f31294a673721864267aa13ea35233326b&quot;&gt;&lt;code&gt;16cba3f&lt;/code&gt;&lt;/a&gt; docs: fix mobile double tap issue (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16293&quot;&gt;#16293&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e098b5f80472e80c70603306e77e14ea15f1a93b&quot;&gt;&lt;code&gt;e098b5f&lt;/code&gt;&lt;/a&gt; docs: keyboard control to search results (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16222&quot;&gt;#16222&lt;/a&gt;) (Shanmughapriyan S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b5b2a7de504f2971a6a488d8a57442e73b56a51&quot;&gt;&lt;code&gt;1b5b2a7&lt;/code&gt;&lt;/a&gt; docs: add Consolas font and prioritize resource loading (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16225&quot;&gt;#16225&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ae8236a2e71c9dead20ba9da60d8cc9e317859a&quot;&gt;&lt;code&gt;1ae8236&lt;/code&gt;&lt;/a&gt; docs: copy &amp;amp; use main package version in docs on release (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16252&quot;&gt;#16252&lt;/a&gt;) (Jugal Thakkar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/279f0afc14617c037da482919942beef87f56e45&quot;&gt;&lt;code&gt;279f0af&lt;/code&gt;&lt;/a&gt; docs: Improve &lt;a href=&quot;https://eslint.org/docs/rules/id-denylist&quot;&gt;id-denylist&lt;/a&gt; documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16223&quot;&gt;#16223&lt;/a&gt;) (Mert Ciflikli)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38e8171d9b170f400ac340368d044b2093114e94&quot;&gt;&lt;code&gt;38e8171&lt;/code&gt;&lt;/a&gt; perf: migrate rbTree to js-sdsl (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16267&quot;&gt;#16267&lt;/a&gt;) (Zilong Yao)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c388fb37739cc09dbd0b4aa59e9d45674280ad5&quot;&gt;&lt;code&gt;1c388fb&lt;/code&gt;&lt;/a&gt; chore: switch nyc to c8 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16263&quot;&gt;#16263&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67db10c51dbb871a201eab444f6a73fbc1e4fc75&quot;&gt;&lt;code&gt;67db10c&lt;/code&gt;&lt;/a&gt; chore: enable linting &lt;code&gt;.eleventy.js&lt;/code&gt; again (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16274&quot;&gt;#16274&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/42bfbd7b7b91106e5f279a05f40c20769e3cd29f&quot;&gt;&lt;code&gt;42bfbd7&lt;/code&gt;&lt;/a&gt; chore: fix &lt;code&gt;npm run perf&lt;/code&gt; crashes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16258&quot;&gt;#16258&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.23.0 released</title>
    <link href="https://eslint.org/blog/2022/08/eslint-v8.23.0-released/"/>
    <updated>2022-08-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/08/eslint-v8.23.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The new config system is now incorporated into the CLI, along with the existing config system. To opt-in to the new config system, place a &lt;a href=&quot;https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new&quot;&gt;eslint.config.js&lt;/a&gt; file in the root of your project. Please note that this is still an experimental feature and we welcome your feedback!&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-fallthrough&quot;&gt;no-fallthrough&lt;/a&gt; rule has a new option &lt;code&gt;allowEmptyCase&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/rules/no-warning-comments&quot;&gt;no-warning-comments&lt;/a&gt; rule has a new option &lt;code&gt;decoration&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e5839ecae96aecfbc1ac9526e88e0105e671032&quot;&gt;&lt;code&gt;3e5839e&lt;/code&gt;&lt;/a&gt; feat: Enable eslint.config.js lookup from CLI (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16235&quot;&gt;#16235&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/30b1a2dac9060673101485841c4c7521675bf917&quot;&gt;&lt;code&gt;30b1a2d&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;allowEmptyCase&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-fallthrough&quot;&gt;no-fallthrough&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15887&quot;&gt;#15887&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/43f03aa96b632039b1d9cad097a70b227bb7d348&quot;&gt;&lt;code&gt;43f03aa&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-warning-comments&quot;&gt;no-warning-comments&lt;/a&gt; support comments with decoration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16120&quot;&gt;#16120&lt;/a&gt;) (Lachlan Hunt)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1918da0f6cb8fe690c7377667616ec7cb57111e&quot;&gt;&lt;code&gt;b1918da&lt;/code&gt;&lt;/a&gt; docs: package.json conventions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16206&quot;&gt;#16206&lt;/a&gt;) (Patrick McElhaney)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e03c333a70bebd00307deead0befa519f983f44&quot;&gt;&lt;code&gt;0e03c33&lt;/code&gt;&lt;/a&gt; docs: remove word immediately (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16217&quot;&gt;#16217&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c6790db6494e64a5261d74c0f3c4dc6139c59435&quot;&gt;&lt;code&gt;c6790db&lt;/code&gt;&lt;/a&gt; docs: add anchor link for “migrating from jscs” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16207&quot;&gt;#16207&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71373442c42b356f34179dba18f860e1d79a780d&quot;&gt;&lt;code&gt;7137344&lt;/code&gt;&lt;/a&gt; docs: auto-generation edit link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16213&quot;&gt;#16213&lt;/a&gt;) (Percy Ma)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e004ab990a4a5a4efc44974da005d2161490256&quot;&gt;&lt;code&gt;2e004ab&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@1.3.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16249&quot;&gt;#16249&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d35fbbef895e8f4ac6eaf1756349230769a02b4d&quot;&gt;&lt;code&gt;d35fbbe&lt;/code&gt;&lt;/a&gt; chore: Upgrade to espree@9.4.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16243&quot;&gt;#16243&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed26229a19359b356f3a401698488c1707d4c029&quot;&gt;&lt;code&gt;ed26229&lt;/code&gt;&lt;/a&gt; test: add &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; tests with rest properties (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16236&quot;&gt;#16236&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/deaf69ffd8f9b97b4b8c29a244a79969ff14c80a&quot;&gt;&lt;code&gt;deaf69f&lt;/code&gt;&lt;/a&gt; chore: fix off-by-one &lt;code&gt;min-width: 1023px&lt;/code&gt; media queries (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15974&quot;&gt;#15974&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/63dec9fdee793be9bf2939e1bda0717b9cc6dcf8&quot;&gt;&lt;code&gt;63dec9f&lt;/code&gt;&lt;/a&gt; refactor: simplify &lt;code&gt;parseListConfig&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16241&quot;&gt;#16241&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.22.0 released</title>
    <link href="https://eslint.org/blog/2022/08/eslint-v8.22.0-released/"/>
    <updated>2022-08-13T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/08/eslint-v8.22.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new&quot;&gt;new config system&lt;/a&gt; preview now supports caching. To learn more, check out the three-part series on our blog! (&lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-1/&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-2/&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-3/&quot;&gt;3&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b97607675e1d0920a3abedd736e2ae00ed26d52&quot;&gt;&lt;code&gt;2b97607&lt;/code&gt;&lt;/a&gt; feat: Implement caching for FlatESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16190&quot;&gt;#16190&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd5d3d37c97001fad1d9ae4386f76b3587cceba9&quot;&gt;&lt;code&gt;fd5d3d3&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;methodsIgnorePattern&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16185&quot;&gt;#16185&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f5a75206675f2404ad6733640cf05ab44b02274&quot;&gt;&lt;code&gt;9f5a752&lt;/code&gt;&lt;/a&gt; docs: optimize image assets (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16170&quot;&gt;#16170&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/61b2948cb71ec505d2f7e904c7ad77ee1da64db2&quot;&gt;&lt;code&gt;61b2948&lt;/code&gt;&lt;/a&gt; docs: add svgo command to pre commit hook (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16178&quot;&gt;#16178&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/784096d37808e59ce8cc07c3c18018b31a31c3f8&quot;&gt;&lt;code&gt;784096d&lt;/code&gt;&lt;/a&gt; docs: improve search result UI (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16187&quot;&gt;#16187&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0f4cb42e86b4b9c7bdf91e88a4ec0d36074f36b&quot;&gt;&lt;code&gt;d0f4cb4&lt;/code&gt;&lt;/a&gt; docs: use shorthand property name in example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16180&quot;&gt;#16180&lt;/a&gt;) (Kevin Elliott)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10a6e0e14488e4ae9ab267fb5db2ec0c5bb85d59&quot;&gt;&lt;code&gt;10a6e0e&lt;/code&gt;&lt;/a&gt; chore: remove deploy workflow for playground (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16186&quot;&gt;#16186&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Redesigning ESLint</title>
    <link href="https://eslint.org/blog/2022/08/redesigning-eslint/"/>
    <updated>2022-08-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/08/redesigning-eslint/</id>
    <content type="html">&lt;p&gt;Hi! My name’s Hayden. I’m a designer and developer and, until recently, I ran a little agency called &lt;a href=&quot;https://jellypepper.com/&quot;&gt;Jellypepper&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We were fortunate enough to work with the ESLint team on their new brand and website. I’m a huge fan of ESLint and use it every day, even going to the effort of writing my own &lt;a href=&quot;https://github.com/haydenbleasel/harmony&quot;&gt;600-line ESLint config&lt;/a&gt; to use across all my React, Next.js and Expo projects.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/nzakas&quot;&gt;Nicholas&lt;/a&gt; originally reached out to us on Twitter to kick off the largest project the ESLint team has taken on in its nine years of existence. He wanted to create a stronger brand identity for the ESLint team and its community, and make the website more functional, easier to navigate, and more useful to everyone from new users to established users.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hi Hayden, I wanted to say thanks for the donation to ESLint. As it so happens, the project is looking for a bit of a rebrand (keep the logo, change everything else) and website redesign, so I was wondering if you’d be interested. It just seemed like a potentially good match.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This was a bit of a dream project for me 😅 So, needless to say, we were totally in.&lt;/p&gt;
&lt;h2 id=&quot;the-brand&quot; tabindex=&quot;-1&quot;&gt;The Brand&lt;/h2&gt;
&lt;p&gt;The ESLint Brand is an interesting one - without too much official visual design, the team has managed to create a brand that is unique and widely recognized by the developer community.&lt;/p&gt;
&lt;h3 id=&quot;the-logo&quot; tabindex=&quot;-1&quot;&gt;The Logo&lt;/h3&gt;
&lt;p&gt;The logomark is at the core of ESLint’s brand identity and one of the most identifiable pieces. It’s a connection to their ecosystem - you can find it everywhere, from IDE marketplaces to corporate sponsorship pages across the web. It carries with it the expectation of a community of developers who are passionate about the code they write.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2022/eslint-logo-animation.gif&quot; alt=&quot;ESLint Logo Animation&quot; /&gt;&lt;/p&gt;
&lt;p&gt;While we kept the icon (given its widespread usage in websites, IDEs, platforms and projects), we wanted to make it that little bit more refined, modern and flexible. By bringing it together our new primary typeface, Space Grotesk (more on this below), we created a new ESLint logomark. Due to its simplicity, it works in a variety of colours and spaces.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2022/logo-mockup.png&quot; alt=&quot;ESLint Logo Mockup&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;the-typeface&quot; tabindex=&quot;-1&quot;&gt;The Typeface&lt;/h3&gt;
&lt;p&gt;As a content-driven organization, typography is at the heart of the new ESLint brand. The website, docs, and blog all require typography to be readable and enjoyable. The brand leverages a purposeful set of typographic styles designed to make the content as accessible as possible for everyone.&lt;/p&gt;
&lt;p&gt;From a technical point of view, we wanted fonts that were widely accessible and conveniently located, so could access it everywhere (particularly on other Google products such as Docs and Slides) and it fits with the free and open-source theme.&lt;/p&gt;
&lt;p&gt;We decided to go with &lt;a href=&quot;https://fonts.floriankarsten.com/space-grotesk&quot;&gt;Space Grotesk&lt;/a&gt; — a fantastic, characteristic font that balances that flair with the technical geometric elements reflecting a more developer-centric side. It creates character with its idiosyncratic details that share principles with the logomark and brings life and energy to the brand by showcasing its more technical details.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2022/space-grotesk.png&quot; alt=&quot;An example of the Space Grotesk font&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Space Grotesk works hand-in-hand with its origin sister font, Space Mono. It was developed for editorial use in headline and display typography; the letterforms infuse a geometric foundation and grotesque details with qualities often found in headline typefaces of the 1960s, many of which have since been co-opted by science fiction films, television, and literature.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2022/spacemono-satellites.gif&quot; alt=&quot;An example of the Space Mono font&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;the-colors&quot; tabindex=&quot;-1&quot;&gt;The Colors&lt;/h3&gt;
&lt;p&gt;ESLint’s color palette speaks to the brand in ways that are every bit as powerful as the copy and logo. It not only affects how the brand design looks, but can go as far as to elicit emotion and reflect the personality of the ESLint brand. Colors are the first impression a design makes, and as such, play an important role in a design’s look and feel.&lt;/p&gt;
&lt;p&gt;While color can be subjective, it’s clear that good colors can attract and convert users. Bad colors, on the other hand, can turn away users and even make designs inaccessible and unusable.&lt;/p&gt;
&lt;p&gt;Due to the functional nature of ESLint, we chose to keep it simple with a primary, neutral and small set of secondary palettes. The new primary color palette is derived from the original logo — we use the two existing colors to create a unique primary tonal range.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2022/eslint-colors.png&quot; alt=&quot;A snapshot of ESLint&#39;s color palette&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-website&quot; tabindex=&quot;-1&quot;&gt;The Website&lt;/h2&gt;
&lt;p&gt;Next up was the redesign of the &lt;a href=&quot;https://eslint.org/&quot;&gt;ESLint website&lt;/a&gt;. Besides maximising the visual appeal of the site, we had a few goals we wanted to achieve for each page. For example, on the homepage:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We wanted to include the latest and upcoming versions of ESLint in the hero section. This was a key part of the design, as it would be the first time we had a dedicated section for ESLint updates.&lt;/li&gt;
&lt;li&gt;We wanted to promote sponsorship. ESLint relies on donations for ongoing maintenance and development, and we wanted to make sure that we could help accelerate the growth of the project.&lt;/li&gt;
&lt;li&gt;We wanted to show ESLint in action — how it can be used in the real world, and how it can be used to make your code more readable.&lt;/li&gt;
&lt;li&gt;We wanted to showcase some of the incredible stats that ESLint has amassed — as of right now, that’s 9M dependents, 25.7M weekly downloads and 21K stars on GitHub.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2022/eslint-website-home.png&quot; alt=&quot;A mockup of the new ESLint homepage design&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I also wanted to introduce some animation and life into the ESLint homepage hero while giving our audience a sense of what it’s like to work with ESLint.&lt;/p&gt;
&lt;p&gt;The red underline in VS Code is synonymous with ESLint, as it is the way VS Code implements ESLint action items. Using these visual indicators, I created a small but fun interaction that gives our visitors a simplified experience.&lt;/p&gt;
&lt;p&gt;I was particularly happy with how this idea turned out! 💡&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2022/homepage-animation.gif&quot; alt=&quot;The ESLint homepage animation&quot; /&gt;&lt;/p&gt;
&lt;p&gt;By incorporating elements of the wider brand including IDE integration, code snippets and supporter logos, we brought the brand to life. Plus, no dev site would be complete without a testimonial from Addy Osmani.&lt;/p&gt;
&lt;h2 id=&quot;the-docs&quot; tabindex=&quot;-1&quot;&gt;The Docs&lt;/h2&gt;
&lt;p&gt;Next up was the mack daddy, redesigning the ESLint documentation. The docs are a central part of ESLint’s ecosystem and are the place where users find information about the project as well as the codebase.&lt;/p&gt;
&lt;p&gt;We wanted to give it a bit of a revamp, creating a consistent information architecture (IA) across all pages, as well as making the pages easier to scan and navigate. We also added a version dropdown to view previous versions of the docs.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2022/eslint-docs.png&quot; alt=&quot;A mockup of the new ESLint Docs design&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I also published the little Carbon Ads component as a &lt;a href=&quot;https://www.figma.com/community/file/1019502569915291740&quot;&gt;Figma Community file&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id=&quot;the-playground&quot; tabindex=&quot;-1&quot;&gt;The Playground&lt;/h2&gt;
&lt;p&gt;The last part of the project was a new microsite called Playground! It’s a fantastic little tool that allows you to create an ESLint configuration file with easy-to-use settings and test your code against it. Then, once you’re happy with it, you can download your config file to use locally. Its also a fantastic way of allowing new users to try ESLint directly in the browser.&lt;/p&gt;
&lt;p&gt;We started designing Playground with a few key requirements in mind — specifically we wanted to make it easy to use, and to make it easy to create and share reproducible bugs with ESLint. Users should also be able to switch between different versions of ESLint, see potential fixes to given problems and install plugins. Ultimately the team couldn’t implement all of these features, but we designed for them all the same.&lt;/p&gt;
&lt;p&gt;There were a few tricky design challenges to overcome here — particularly around the density of information. Exposing all rules in the UI would make things visually difficult to parse, so we needed a way of adding rules to the UI without having to scroll down to the bottom of the page, then customising the value of each rule easily.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog/2022/eslint-playground.png&quot; alt=&quot;A mockup of the new ESLint Playground app&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;what%E2%80%99s-next%3F&quot; tabindex=&quot;-1&quot;&gt;What’s next?&lt;/h2&gt;
&lt;p&gt;The ESLint team are currently rolling out everything above (you’re on the new website right now!).&lt;/p&gt;
&lt;p&gt;I want to thank the ESLint team, especially Nicholas, for the opportunity to work on this project. I was also very fortunate to work with such talented and passionate people, such as &lt;a href=&quot;https://www.sarasoueidan.com/&quot;&gt;Sara&lt;/a&gt; and &lt;a href=&quot;https://gavinbarnett.com/&quot;&gt;Gavin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have any questions, comments, or feedback on the ESLint brand, please reach out to me on Twitter at &lt;a href=&quot;https://twitter.com/haydenbleasel&quot;&gt;@haydenbleasel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Happy linting, folks! ✌️&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint&#39;s new config system, Part 3: Developer preview</title>
    <link href="https://eslint.org/blog/2022/08/new-config-system-part-3/"/>
    <updated>2022-08-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/08/new-config-system-part-3/</id>
    <content type="html">&lt;p&gt;In my &lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-2/&quot;&gt;previous post&lt;/a&gt;, I explained the fundamental concepts of using the new “flat” config system. The new config system isn’t yet tied into the CLI while we do more internal testing, but we did want to give the ESLint community a chance to experiment with flat config while we work on incorporating it into the CLI. So ESLint v8.21.0 incorporates several ways to try out flat config as we work on it. Please keep in mind that everything mentioned in this post is experimental and we would love your feedback as you try it out.&lt;/p&gt;
&lt;h2 id=&quot;using-flat-config-with-the-linter-class&quot; tabindex=&quot;-1&quot;&gt;Using flat config with the &lt;code&gt;Linter&lt;/code&gt; class&lt;/h2&gt;
&lt;p&gt;If you are currently using &lt;code&gt;Linter&lt;/code&gt; from the &lt;code&gt;eslint&lt;/code&gt; package, you can enable flat config by setting &lt;code&gt;configType: &amp;quot;flat&amp;quot;&lt;/code&gt; as an option on the constructor. Here’s an example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; linter &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Linter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;configType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;flat&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; messages &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; linter&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;verify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;new Map()&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;ecmaVersion&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;script&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token string-property property&quot;&gt;&quot;no-undef&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;filename.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When you pass &lt;code&gt;configType: &amp;quot;flat&amp;quot;&lt;/code&gt; as an option, &lt;code&gt;Linter&lt;/code&gt; expects that any configuration objects that are passed to &lt;code&gt;verify()&lt;/code&gt; will be in flat config format. In this example, the second argument to &lt;code&gt;verify()&lt;/code&gt; is a flat config object (you can pass either a single object or an array of objects). Any call to &lt;code&gt;verify()&lt;/code&gt; will assume that the text being linted is a JavaScript file whose filename ends with &lt;code&gt;.js&lt;/code&gt;, but it’s always a good idea to pass in an explicit filename as the third argument.&lt;/p&gt;
&lt;p&gt;While this base case works the same regardless of which config system you’re using, there are some important differences:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;defineRule()&lt;/code&gt;, &lt;code&gt;defineRules()&lt;/code&gt;, and &lt;code&gt;defineParser()&lt;/code&gt; now throw errors. Runtime plugins (discussed in my previous post) make these methods obsolete.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getRules()&lt;/code&gt; also throws an error. This method would return different data depending on when it was called, so it can’t be used with flat config.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;using-flat-config-with-the-eslint-class&quot; tabindex=&quot;-1&quot;&gt;Using flat config with the &lt;code&gt;ESLint&lt;/code&gt; class&lt;/h2&gt;
&lt;p&gt;While implementing flat config we discovered that it would be too difficult to create an option to switch between config systems like we did for &lt;code&gt;Linter&lt;/code&gt;. Instead, we created a &lt;code&gt;FlatESLint&lt;/code&gt; class that encapsulates all of the existing functionality in &lt;code&gt;ESLint&lt;/code&gt; but uses flat config instead of eslintrc. The &lt;code&gt;FlatESLint&lt;/code&gt; class is intended only as a preview of functionality; once we switch over to flat config permanently, the current &lt;code&gt;ESLint&lt;/code&gt; class will be deleted and &lt;code&gt;FlatESLint&lt;/code&gt; will be renamed to &lt;code&gt;ESLint&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For now, you can access &lt;code&gt;FlatESLint&lt;/code&gt; through the &lt;code&gt;use-at-your-own-risk&lt;/code&gt; entrypoint, like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// ESM&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; pkg &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint/use-at-your-own-risk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; FlatESLint &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; pkg&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// CommonJS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; FlatESLint &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;eslint/use-at-your-own-risk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After that, you can use &lt;code&gt;FlatESLint&lt;/code&gt; in the same way as &lt;code&gt;ESLint&lt;/code&gt;, such as:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; eslint &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;FlatESLint&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;cwd&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; originalDir&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;overrideConfigFile&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;other.config.js&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; results &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; eslint&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;lintText&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;foo&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As with &lt;code&gt;Linter&lt;/code&gt;, there are a few differences between &lt;code&gt;FlatESLint&lt;/code&gt; and &lt;code&gt;ESLint&lt;/code&gt; worth pointing out:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Caching is not yet implemented in &lt;code&gt;FlatESLint&lt;/code&gt;, so &lt;code&gt;cache: true&lt;/code&gt; throws an error.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;useEslintrc&lt;/code&gt; option has been removed. If you want to avoid automatic loading of &lt;code&gt;eslint.config.js&lt;/code&gt; without specifying an alternate config file, set &lt;code&gt;overrideConfigFile: true&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;envs&lt;/code&gt; option has been removed.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;resolvePluginsRelativeTo&lt;/code&gt; option has been removed.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;rulePaths&lt;/code&gt; option has been removed. Custom rules must be added directly by config.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;testing-rules-with-flat-config-and-the-ruletester-class&quot; tabindex=&quot;-1&quot;&gt;Testing rules with flat config and the &lt;code&gt;RuleTester&lt;/code&gt; class&lt;/h2&gt;
&lt;p&gt;Similar to the &lt;code&gt;ESLint&lt;/code&gt; class, there was no easy way to provide an option to switch between eslintrc and flat config, so we created a separate &lt;code&gt;FlatRuleTester&lt;/code&gt; class. Also similar to &lt;code&gt;ESLint&lt;/code&gt;, the &lt;code&gt;FlatRuleTester&lt;/code&gt; class is temporary and will eventually be renamed &lt;code&gt;RuleTester&lt;/code&gt; once we have switched completely over to flat config. You can access &lt;code&gt;FlatRuleTester&lt;/code&gt; like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// ESM&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; pkg &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint/use-at-your-own-risk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; FlatRuleTester &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; pkg&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// CommonJS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; FlatRuleTester &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;eslint/use-at-your-own-risk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Any place where you could specify an eslintrc config in &lt;code&gt;RuleTester&lt;/code&gt; needs to be a flat config in &lt;code&gt;FlatRuleTester&lt;/code&gt;. Here are some examples:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; ruleTester &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;FlatRuleTester&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;ecmaVersion&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;script&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;ruleTester&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setDefaultConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;ecmaVersion&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;script&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In individual tests, you can use &lt;code&gt;languageOptions&lt;/code&gt; directly in each test:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;ruleTester&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;my-rule&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; rule&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;valid&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;code&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;var test = &#39;foo&#39;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;script&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;code&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;var test2 = &#39;bar&#39;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token literal-property property&quot;&gt;globals&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;invalid&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;code&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;bar&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;script&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;errors&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Some things to keep in mind when using &lt;code&gt;FlatRuleTester&lt;/code&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The default &lt;code&gt;ecmaVersion&lt;/code&gt; is now &lt;code&gt;&amp;quot;latest&amp;quot;&lt;/code&gt;, so if you aren’t specifying &lt;code&gt;ecmaVersion&lt;/code&gt; in your tests, there may be an incompatibility because eslintrc’s default &lt;code&gt;ecmaVersion&lt;/code&gt; was &lt;code&gt;5&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The default &lt;code&gt;sourceType&lt;/code&gt; is now &lt;code&gt;&amp;quot;module&amp;quot;&lt;/code&gt;, so if you aren’t specifying &lt;code&gt;sourceType&lt;/code&gt; in your tests, there may be an incompatibility because eslintrc’s default &lt;code&gt;sourceType&lt;/code&gt; was &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt;. This shows up mostly when dealing with variables in the global scope.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;We think that the new config system will be a great experience for ESLint users, but in order for that to happen, we have to make sure that the ESLint ecosystem is ready for these changes. That’s why we’ve put together this developer preview to let all of our plugin, custom rule, parser, and shareable config authors get an early look at how their packages will work in the new config system. This is your opportunity to give us your feedback and help work through any incompatibilities or problems with flat config.&lt;/p&gt;
&lt;p&gt;Please try out flat config with your packages and let us know how it goes by &lt;a href=&quot;https://github.com/eslint/eslint/discussions/new&quot;&gt;starting a discussion&lt;/a&gt; or stopping by the &lt;a href=&quot;https://eslint.org/chat/developers&quot;&gt;Discord #developers channel&lt;/a&gt; if you have questions or &lt;a href=&quot;https://github.com/eslint/eslint/issues/new&quot;&gt;opening an issue&lt;/a&gt; if you discover a problem.&lt;/p&gt;
&lt;p&gt;We appreciate your help and feedback!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint&#39;s new config system, Part 2: Introduction to flat config</title>
    <link href="https://eslint.org/blog/2022/08/new-config-system-part-2/"/>
    <updated>2022-08-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/08/new-config-system-part-2/</id>
    <content type="html">&lt;p&gt;In &lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-1/&quot;&gt;my previous post&lt;/a&gt;, I talked about how the eslintrc config system had grown to be more complex than necessary through a series of small, incremental changes. The flat config system, on the other hand, was designed from the start to be simpler in a number of ways. We took all of the learnings from the previous six years of ESLint development to come up with a holistic approach to configuration that took the best of eslintrc and combined it with the way other JavaScript-related tools handled configuration. The result is something that hopefully feels familiar to existing ESLint users and is far more powerful than what was possible before.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Docs:&lt;/strong&gt; Read more about flat config system in the &lt;a href=&quot;https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new&quot;&gt;official documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;the-goals-of-flat-config&quot; tabindex=&quot;-1&quot;&gt;The goals of flat config&lt;/h2&gt;
&lt;p&gt;To set the stage for the changes in flat config, we had several goals:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Logical defaults&lt;/strong&gt; - the way people write JavaScript has changed a lot in the past nine years, and we wanted the new config system to reflect our current reality rather than the one we lived in when ESLint was first released.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One way to define configs&lt;/strong&gt; - we didn’t want folks to have multiple ways to do the same thing any longer. There should be one way to define configs for any given project.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rules configs should remain unchanged&lt;/strong&gt; - we felt like the way rules were configured already worked fine, so to make it easier to transition to flat config, we didn’t want to make any changes to rule configs. The same &lt;code&gt;rules&lt;/code&gt; key can be used the same way in flat config.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use native loading for everything&lt;/strong&gt; - one of our biggest regrets about eslintrc was recreating the Node.js &lt;code&gt;require&lt;/code&gt; resolution in a custom way. This was a significant source of complexity and, in hindsight, unnecessary. Going forward, we wanted to leverage the loading capabilities of the JavaScript runtime directly.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better organized top-level keys&lt;/strong&gt; - the number of keys at the top-level of eslintrc had grown dramatically since ESLint was released. We need to look at which keys were necessary and how they related to one another.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Existing plugins should work&lt;/strong&gt; - the ESLint ecosystem is filled with hundreds of plugins. It was important that these plugins continued to work.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Backwards compatibility should be a priority&lt;/strong&gt; - even though we are moving to a new config system, we didn’t want to leave all of the existing ecosystem behind. In particular, we wanted to have ways for shareable configs to continue to work as closely as possible. While we knew 100% compatibility was probably unrealistic, we wanted to do our best to ensure existing shareable configs would work.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;With these goals in mind, we came up with the new flat config system.&lt;/p&gt;
&lt;h2 id=&quot;setting-logical-defaults-for-linting&quot; tabindex=&quot;-1&quot;&gt;Setting logical defaults for linting&lt;/h2&gt;
&lt;p&gt;When ESLint was first created, ECMAScript 5 was the most recent version of JavaScript and most files were written as “shared everything” scripts or CommonJS modules (for Node.js). ECMAScript 6 was on the horizon but no one knew how quickly it would be implemented or how modules (ESM) would end up being used. So ESLint’s defaults were to assume all files were ECMAScript 5. We ended up with the &lt;code&gt;ecmaVersion&lt;/code&gt; parser configuration to allow people to opt-in to ECMAScript 6 when they were ready.&lt;/p&gt;
&lt;p&gt;Fast forward to 2022: ECMAScript is constantly evolving and ESM is the standard module format everyone is using. We couldn’t really change the default settings of eslintrc without potentially breaking a lot of existing configurations, but we could definitely make a change with flat config.&lt;/p&gt;
&lt;p&gt;Flat config features the following defaults:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ecmaVersion: &amp;quot;latest&amp;quot;&lt;/code&gt; for all JavaScript files - That’s right, by default all JavaScript files will be set to the latest version of ECMAScript. This mimics how JavaScript runtimes work, in that every upgrade means you are opting-in to the latest and greatest version of JavaScript. This change should mean that you probably won’t have to manually set &lt;code&gt;ecmaVersion&lt;/code&gt; in your config unless you want to enforce a previous version due to runtime constraints. You will still be able to set &lt;code&gt;ecmaVersion&lt;/code&gt; all the way down to &lt;code&gt;3&lt;/code&gt; if necessary.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sourceType: &amp;quot;module&amp;quot;&lt;/code&gt; for all &lt;code&gt;.js&lt;/code&gt; and &lt;code&gt;.mjs&lt;/code&gt; files - By default, flat config assumes you are writing ESM. If not, you can always set &lt;code&gt;sourceType&lt;/code&gt; back to &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sourceType: &amp;quot;commonjs&amp;quot;&lt;/code&gt; for &lt;code&gt;.cjs&lt;/code&gt; files - We are still in a transition period where a lot of Node.js code is written in CommonJS. To support those users, we added a new &lt;code&gt;sourceType&lt;/code&gt; of &lt;code&gt;&amp;quot;commonjs&amp;quot;&lt;/code&gt; that configures everything correctly for that environment.&lt;/li&gt;
&lt;li&gt;ESLint searches for &lt;code&gt;.js&lt;/code&gt;, &lt;code&gt;.mjs&lt;/code&gt;, and &lt;code&gt;.cjs&lt;/code&gt; files - With eslintrc, ESLint only ever searched for &lt;code&gt;.js&lt;/code&gt; files when you passed a directory name on the command line, and you would need to use the &lt;code&gt;--ext&lt;/code&gt; flag to define more. With flat config, all three of the most common JavaScript filename extensions are automatically searched.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are pretty excited about these new defaults as we think this will help people onboard to ESLint faster and with less confusion.&lt;/p&gt;
&lt;h2 id=&quot;the-new-config-file%3A-eslint.config.js&quot; tabindex=&quot;-1&quot;&gt;The new config file: &lt;code&gt;eslint.config.js&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;In contrast to eslintrc, which allowed multiple config files in multiple locations, multiple config file formats, and even &lt;code&gt;package.json&lt;/code&gt;-based configs, flat config has just one location for all of your project’s configuration: the &lt;code&gt;eslint.config.js&lt;/code&gt; file. By limiting configuration to one location and one format, we can take advantage of the JavaScript runtime’s loading mechanism directly and avoid the need for custom parsing of config files.&lt;/p&gt;
&lt;p&gt;When the ESLint CLI is used, it searches for &lt;code&gt;eslint.config.js&lt;/code&gt; from the current working directory and if not found will continue the search up the directory’s ancestors until the file is found or the root directory is hit. That one &lt;code&gt;eslint.config.js&lt;/code&gt; file contains all of the configuration information for that run of ESLint so it dramatically reduces the disk access required as compared to eslintrc, which had to check each directory from the linted file location up to the root for any additional config files.&lt;/p&gt;
&lt;p&gt;Additionally, using a JavaScript file allowed us to rely on users to load additional information that their config file might need. Instead of &lt;code&gt;extends&lt;/code&gt; and &lt;code&gt;plugins&lt;/code&gt; loading things by name, you can now just use &lt;code&gt;import&lt;/code&gt; and &lt;code&gt;require&lt;/code&gt; as necessary to bring in those additional resources. Here’s an example of what an &lt;code&gt;eslint.config.js&lt;/code&gt; file looks like:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;semi&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;no-unused-vars&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;An &lt;code&gt;eslint.config.js&lt;/code&gt; file exports an array of config objects. Read on to understand more about this example.&lt;/p&gt;
&lt;h2 id=&quot;glob-based-configs-everywhere&quot; tabindex=&quot;-1&quot;&gt;Glob-based configs everywhere&lt;/h2&gt;
&lt;p&gt;While the &lt;code&gt;overrides&lt;/code&gt; key in eslintrc was the source of a lot of complexity, one thing was very clear: people really liked being able to define configuration by glob patterns in their config file. Because we wanted to eliminate the config cascade of eslintrc, we had to use glob patterns to enable the same type of config overrides. We used the &lt;code&gt;overrides&lt;/code&gt; configs as the basis for flat config.&lt;/p&gt;
&lt;p&gt;Each config object can have optional &lt;code&gt;files&lt;/code&gt; and &lt;code&gt;ignores&lt;/code&gt; keys specifying &lt;a href=&quot;https://npmjs.com/package/minimatch&quot;&gt;minimatch&lt;/a&gt;-based glob patterns to match files. A config object only applies to a file if the filename matches a pattern in &lt;code&gt;files&lt;/code&gt; (or if there is no &lt;code&gt;files&lt;/code&gt; key, in which case it will match all files). The &lt;code&gt;ignores&lt;/code&gt; key filters out files from the list of &lt;code&gt;files&lt;/code&gt;, so you limit which files the config object applies to. For instance, maybe your test files live in the same directory as your source file and you want a config object to apply only to the source files. You could do so like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;ignores&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.test.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;semi&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;no-unused-vars&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here, the config object will match all JavaScript files and then filter out any files ending with &lt;code&gt;.test.js&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;What if you want to ignore files completely? You can do that by specifying a config object that has only an &lt;code&gt;ignores&lt;/code&gt; key, like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;ignores&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.test.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;semi&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;no-unused-vars&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With this config, all JavaScript files ending with &lt;code&gt;.test.js&lt;/code&gt; will be ignored. You can think of this as the equivalent of &lt;code&gt;ignorePatterns&lt;/code&gt; in eslintrc, albeit with minimatch patterns.&lt;/p&gt;
&lt;h2 id=&quot;goodbye-extends%2C-hello-flat-cascade&quot; tabindex=&quot;-1&quot;&gt;Goodbye &lt;code&gt;extends&lt;/code&gt;, hello flat cascade&lt;/h2&gt;
&lt;p&gt;While we wanted to get rid of the directory-based config cascade, flat config actually still has a flat cascade defined directly in your &lt;code&gt;eslint.config.js&lt;/code&gt; file. Inside of the array, ESLint finds all config objects that match the file being linted and merges them together in much the same way that eslintrc did. The only real difference is the merge happens from the top of the array down to the bottom instead of using files in a directory structure. For example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;**/*.cjs&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;semi&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;no-unused-vars&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;no-undef&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;semi&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;warn&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This config has two config objects with overlapping &lt;code&gt;files&lt;/code&gt; patterns. The first config object applies to all &lt;code&gt;.js&lt;/code&gt; and &lt;code&gt;.cjs&lt;/code&gt; files while the second applies only to &lt;code&gt;.js&lt;/code&gt; files. When linting a file ending with &lt;code&gt;.js&lt;/code&gt;, ESLint combines both config objects to create the final config for the file. Because the second config sets &lt;code&gt;semi&lt;/code&gt; to a severity of &lt;code&gt;&amp;quot;warn&amp;quot;&lt;/code&gt;, that takes precedence over the &lt;code&gt;&amp;quot;error&amp;quot;&lt;/code&gt; that was set in the first config. The last matching config always wins when there is a conflict.&lt;/p&gt;
&lt;p&gt;What this means for shareable configs is that you can insert them directly into the array instead of using &lt;code&gt;extends&lt;/code&gt;, such as:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; customConfig &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint-config-custom&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    customConfig&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;**/*.cjs&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;semi&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;no-unused-vars&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;no-undef&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;semi&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;warn&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here, &lt;code&gt;customConfig&lt;/code&gt; is inserted first in the array so that it becomes the base of configuration for this file. Each of the following config objects builds upon that base to create the final config for a given JavaScript file.&lt;/p&gt;
&lt;h2 id=&quot;reimagined-language-options&quot; tabindex=&quot;-1&quot;&gt;Reimagined language options&lt;/h2&gt;
&lt;p&gt;ESLint has always had a strange mix of options that affected how JavaScript was interpreted. There was the top-level &lt;code&gt;globals&lt;/code&gt; key that modified available global variables, and &lt;code&gt;ecmaVersion&lt;/code&gt; and &lt;code&gt;sourceType&lt;/code&gt; as &lt;code&gt;parserOptions&lt;/code&gt;, not to mention &lt;code&gt;env&lt;/code&gt; to add more globals. Perhaps the most confusing is that you had to set both &lt;code&gt;ecmaVersion&lt;/code&gt; and add an environment like &lt;code&gt;es6&lt;/code&gt; to enable both the syntax you wanted and ensure that the correct global variables would be available.&lt;/p&gt;
&lt;p&gt;In flat config, we moved all keys related to JavaScript evaluation into a new top-level key called &lt;code&gt;languageOptions&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;setting-ecmaversion-in-flat-config&quot; tabindex=&quot;-1&quot;&gt;Setting &lt;code&gt;ecmaVersion&lt;/code&gt; in flat config&lt;/h3&gt;
&lt;p&gt;The biggest change is that we moved &lt;code&gt;ecmaVersion&lt;/code&gt; out of &lt;code&gt;parserOptions&lt;/code&gt; and directly into &lt;code&gt;languageOptions&lt;/code&gt;. This better reflects this key’s new behavior, which is to enable both syntax and global variables based on the specified version of ECMAScript. For example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;ecmaVersion&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;6&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This config has downgraded &lt;code&gt;ecmaVersion&lt;/code&gt; to &lt;code&gt;6&lt;/code&gt;. Doing so ensures that all of the ES6 syntax and all of the ES6 globals are available. (Any custom parsers used will still receive this value of &lt;code&gt;ecmaVersion&lt;/code&gt;.)&lt;/p&gt;
&lt;h3 id=&quot;setting-sourcetype-in-flat-config&quot; tabindex=&quot;-1&quot;&gt;Setting &lt;code&gt;sourceType&lt;/code&gt; in flat config&lt;/h3&gt;
&lt;p&gt;Next, we moved &lt;code&gt;sourceType&lt;/code&gt; into &lt;code&gt;languageOptions&lt;/code&gt;. Similar to &lt;code&gt;ecmaVersion&lt;/code&gt;, this key affects not just how a file is parsed, but also how ESLint evaluates its scope structure. We kept the traditional &lt;code&gt;&amp;quot;module&amp;quot;&lt;/code&gt; for ESM and &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt; for scripts, and also added &lt;code&gt;&amp;quot;commonjs&amp;quot;&lt;/code&gt;, which lets ESLint know that it should treat the file as CommonJS (which also enables CommonJS-specific globals). If you are using &lt;code&gt;ecmaVersion: 3&lt;/code&gt; or &lt;code&gt;ecmaVersion: 5&lt;/code&gt;, be sure to set &lt;code&gt;sourceType: script&lt;/code&gt;, like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;ecmaVersion&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;script&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;goodbye-environments%2C-hello-globals&quot; tabindex=&quot;-1&quot;&gt;Goodbye environments, hello &lt;code&gt;globals&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Environments in eslintrc provided a known set of globals and were a constant source of confusion for users. They need to be kept up to date (especially in the case of &lt;code&gt;browser&lt;/code&gt;) and that update needs to wait for ESLint releases. Plus, we had hooked some additional functionality onto environments to make it easier to work with Node.js, and in the end, we made a mess.&lt;/p&gt;
&lt;p&gt;For flat config, we decided to remove the &lt;code&gt;env&lt;/code&gt; key completely. Why? Because it’s no longer needed. All of the custom functionality we hooked onto environments for use with Node.js is now covered by &lt;code&gt;sourceType: &amp;quot;commonjs&amp;quot;&lt;/code&gt;, so all that was left was for environments to manage global variables. It doesn’t make sense for ESLint to do this in the core, so we are handing this responsibility back to you.&lt;/p&gt;
&lt;p&gt;Years ago, we worked with Sindre Sorhus to create the &lt;a href=&quot;https://npmjs.com/package/globals&quot;&gt;&lt;code&gt;globals&lt;/code&gt;&lt;/a&gt; package, which extracted all of the environment information from ESLint so that it would be available to other packages. ESLint then used &lt;code&gt;globals&lt;/code&gt; as the source for its environments.&lt;/p&gt;
&lt;p&gt;With flat config, you can use the &lt;code&gt;globals&lt;/code&gt; package directly, updating it whenever you want, to get all of the same functionality that environments used to provide. For example, here is how you add browser globals into your configuration:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; globals &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;globals&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;globals&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;globals&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;browser&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token literal-property property&quot;&gt;myCustomGlobal&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;readonly&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;languageOptions.globals&lt;/code&gt; key works the same as it did in eslintrc, only now, you can use JavaScript to dynamically insert any global variables that you want.&lt;/p&gt;
&lt;h3 id=&quot;custom-parsers-and-parser-options-are-mostly-the-same&quot; tabindex=&quot;-1&quot;&gt;Custom parsers and parser options are mostly the same&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;parser&lt;/code&gt; and &lt;code&gt;parserOptions&lt;/code&gt; keys have now moved into the &lt;code&gt;languageOptions&lt;/code&gt; key, but they mostly work the same as in eslintrc with two specific differences:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You can now insert the parser object directly into the config.&lt;/li&gt;
&lt;li&gt;Parsers can now be bundled with plugins and you can specify a string value for &lt;code&gt;parser&lt;/code&gt; to use a parser from a plugin. (Described more in the next section.)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here’s an example using the &lt;a href=&quot;https://npmjs.com/package/@babel/eslint-parser&quot;&gt;Babel ESLint parser&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; babelParser &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@babel/eslint-parser&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;**/*.mjs&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;parser&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; babelParser&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This configuration ensures that the Babel parser, rather than the default, will be used to parse all files ending with &lt;code&gt;.js&lt;/code&gt; and &lt;code&gt;.mjs&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can also pass options directly to the custom parser by using the &lt;code&gt;parserOptions&lt;/code&gt; key in the same way as it works in eslintrc:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; babelParser &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@babel/eslint-parser&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;**/*.mjs&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;languageOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;parser&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; babelParser&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;parserOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token literal-property property&quot;&gt;requireConfigFile&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token literal-property property&quot;&gt;babelOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token literal-property property&quot;&gt;babelrc&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token literal-property property&quot;&gt;configFile&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token comment&quot;&gt;// your babel options&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    &lt;span class=&quot;token literal-property property&quot;&gt;presets&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;@babel/preset-env&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;more-powerful-and-configurable-plugins&quot; tabindex=&quot;-1&quot;&gt;More powerful and configurable plugins&lt;/h2&gt;
&lt;p&gt;The strength of ESLint is the ecosystem of plugins that individuals and companies maintain to customize their linting strategy. As such, we wanted to be sure that existing plugins continued to work without modification as well as allowing plugins to do things they were never able to do in the past.&lt;/p&gt;
&lt;p&gt;On the surface, using a plugin in flat config looks very similar to using a plugin in eslintrc. The big difference is that eslintrc used strings whereas flat configs uses objects. Instead of specifying the name of a plugin, you import the plugin directly and place it into the &lt;code&gt;plugins&lt;/code&gt; key, as in this example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; jsdoc &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint-plugin-jsdoc&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            jsdoc&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;jsdoc/require-description&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;jsdoc/check-values&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This config uses the &lt;a href=&quot;https://npmjs.com/package/eslint-plugin-jsdoc&quot;&gt;&lt;code&gt;eslint-plugin-jsdoc&lt;/code&gt;&lt;/a&gt; plugin by importing it as a local &lt;code&gt;jsdoc&lt;/code&gt; variable and then inserting it into the &lt;code&gt;plugins&lt;/code&gt; key in the config. After that, the rules inside the plugin are referenced using the &lt;code&gt;jsdoc&lt;/code&gt; namespace.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Because plugins are now imported like any other JavaScript module, there’s no more strict enforcement of plugin package names. You no longer need to include &lt;code&gt;eslint-plugin-&lt;/code&gt; as the prefix for your package names…but we would like it if you did.&lt;/p&gt;
&lt;h3 id=&quot;personalized-plugin-namespaces&quot; tabindex=&quot;-1&quot;&gt;Personalized plugin namespaces&lt;/h3&gt;
&lt;p&gt;Because the name of the plugin in your config is now decoupled from the name of the plugin package, you can choose any name you want, as in this example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; jsdoc &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint-plugin-jsdoc&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;jsd&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; jsdoc&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;jsd/require-description&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;jsd/check-values&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here, the plugin is named &lt;code&gt;jsd&lt;/code&gt; in the config, so the rules also use &lt;code&gt;jsd&lt;/code&gt; to indicate which plugin they are coming from.&lt;/p&gt;
&lt;h3 id=&quot;from---rulesdir-to-runtime-plugins&quot; tabindex=&quot;-1&quot;&gt;From &lt;code&gt;--rulesdir&lt;/code&gt; to runtime plugins&lt;/h3&gt;
&lt;p&gt;With eslintrc, rules needed to be loaded by the CLI directly in order to be available inside of a config file. This means either bundling custom rules in a plugin or using the &lt;code&gt;--rulesdir&lt;/code&gt; flag to specify the directory from which ESLint should load custom rules. Both approaches required some extra work to set up and were a frequent cause of frustration for our users.&lt;/p&gt;
&lt;p&gt;With flat config, you can load custom rules directly in the config file. Because plugins are now objects directly in the config, you can easily create runtime plugins that exist only in your config file, such as:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; myrule &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;./custom-rules/myrule.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;custom&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                    myrule&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string-property property&quot;&gt;&quot;custom/myrule&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here, a custom rule is imported as &lt;code&gt;myrule&lt;/code&gt; and then a runtime plugin is created named &lt;code&gt;custom&lt;/code&gt; to provide that rule to the config as &lt;code&gt;custom/myrule&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;As a result, we will be removing &lt;code&gt;--rulesdir&lt;/code&gt; once the transition to flat config is complete.&lt;/p&gt;
&lt;h3 id=&quot;processors-works-in-a-similar-way-to-eslintrc&quot; tabindex=&quot;-1&quot;&gt;Processors works in a similar way to eslintrc&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;processor&lt;/code&gt; top-level key works mostly the same as in eslintrc, with the primary use case being to use a processor that is defined in a plugin, for example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; markdown &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint-plugin-markdown&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.md&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            markdown&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;processor&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;markdown/markdown&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This configuration object specifies that there is a processor called &lt;code&gt;&amp;quot;markdown&amp;quot;&lt;/code&gt; contained in the plugin named &lt;code&gt;&amp;quot;markdown&amp;quot;&lt;/code&gt; and will apply the processor to all files ending with &lt;code&gt;.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The one addition in flat config is that &lt;code&gt;processor&lt;/code&gt; can now also be an object containing both a &lt;code&gt;preprocess()&lt;/code&gt; and a &lt;code&gt;postprocess()&lt;/code&gt; method.&lt;/p&gt;
&lt;h2 id=&quot;organized-linter-options&quot; tabindex=&quot;-1&quot;&gt;Organized linter options&lt;/h2&gt;
&lt;p&gt;In eslintrc, there were a couple of keys that related directly to how the linter operated, namely &lt;code&gt;noInlineConfig&lt;/code&gt; and &lt;code&gt;reportUnusedDisableDirectives&lt;/code&gt;. These have moved into the new &lt;code&gt;linterOptions&lt;/code&gt; key but work exactly the same as in eslintrc. Here’s an example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;linterOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;noInlineConfig&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;reportUnusedDisableDirectives&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;shared-settings-are-exactly-the-same&quot; tabindex=&quot;-1&quot;&gt;Shared settings are exactly the same&lt;/h3&gt;
&lt;p&gt;The top-level &lt;code&gt;settings&lt;/code&gt; key behaves the exact same way as in eslintrc. You can define an object with key-value pairs that should be available to all rules. Here’s an example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;settings&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;sharedData&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Hello&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;using-predefined-configs&quot; tabindex=&quot;-1&quot;&gt;Using predefined configs&lt;/h3&gt;
&lt;p&gt;ESLint has two predefined configurations for JavaScript:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;js.configs.recommended&lt;/code&gt; - enables the rules that ESLint recommends everyone use to avoid potential errors&lt;/li&gt;
&lt;li&gt;&lt;code&gt;js.configs.all&lt;/code&gt; - enables all of the rules shipped with ESLint&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To include these predefined configurations, install the &lt;code&gt;@eslint/js&lt;/code&gt; package and then make any modifications to other properties in subsequent configuration objects:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; js &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@eslint/js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    js&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;configs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;recommended&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;semi&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;warn&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;always&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here, the &lt;code&gt;eslint:recommended&lt;/code&gt; predefined configuration is applied first and then another configuration object adds the desired configuration for &lt;code&gt;semi&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;backwards-compatibility-utility&quot; tabindex=&quot;-1&quot;&gt;Backwards compatibility utility&lt;/h2&gt;
&lt;p&gt;As mentioned previously, we felt like there needed to be a good amount of backwards compatibility with eslintrc in order to ease the transition. The &lt;a href=&quot;https://npmjs.com/package/@eslint/eslintrc&quot;&gt;&lt;code&gt;@eslint/eslintrc&lt;/code&gt;&lt;/a&gt; package provides a &lt;code&gt;FlatCompat&lt;/code&gt; class that makes it easy to continue using eslintrc-style shared configs and settings within a flat config file. Here’s an example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; FlatCompat &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@eslint/eslintrc&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; path &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;path&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; fileURLToPath &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;url&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// mimic CommonJS variables -- not needed if using CommonJS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; __filename &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;fileURLToPath&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;meta&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;url&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; __dirname &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; path&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;dirname&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;__filename&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; compat &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;FlatCompat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;baseDirectory&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; __dirname&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// mimic ESLintRC-style extends&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;compat&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;extends&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;standard&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;example&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// mimic environments&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;compat&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;es2020&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;node&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// mimic plugins&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;compat&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;airbnb&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;react&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// translate an entire config&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;compat&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;airbnb&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;react&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;extends&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;standard&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;es2020&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;node&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token literal-property property&quot;&gt;semi&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using the &lt;code&gt;FlatCompat&lt;/code&gt; class allows you to continue using all of your existing eslintrc files while optimizing them for use with flat config. We envision this as a necessary transitional step to allow the ecosystem to slowly convert over to flat config.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The team spent a long time designing flat config so that it would both feel familiar to existing users and provide new functionality that would benefit everyone. We kept things like rules, settings, and processors the same while extending things like plugins, language options, and linter options to be more uniform. We think that flat config has found a good balance between these two poles and that you will enjoy using ESLint more once the new config system is generally available. In the meantime, the compatibility utility will allow you to continue using existing shared configs.&lt;/p&gt;
&lt;p&gt;In the &lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-3/&quot;&gt;next part&lt;/a&gt; of this blog series, you’ll learn how to start using flat config today.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Updated (2024-08-12):&lt;/strong&gt; Updated the predefined ESLint configurations for JavaScript.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint&#39;s new config system, Part 1: Background</title>
    <link href="https://eslint.org/blog/2022/08/new-config-system-part-1/"/>
    <updated>2022-08-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/08/new-config-system-part-1/</id>
    <content type="html">&lt;p&gt;When ESLint was first released in 2013, the config system was fairly simple. You could define the rules you wanted to enable or disable in a &lt;code&gt;.eslintrc&lt;/code&gt; file. When a file was linted, ESLint would first look in the same directory as that file for a &lt;code&gt;.eslintrc&lt;/code&gt; file and then continue up the directory hierarchy until reaching the root, merging configurations from all the &lt;code&gt;.eslintrc&lt;/code&gt; files found along the way. This system, which we called the configuration cascade, allowed you to easily override rules for particular directories, something that JSHint wasn’t capable of doing. You could also add more configuration in the &lt;code&gt;eslintConfig&lt;/code&gt; key inside of &lt;code&gt;package.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Over the years, however, the config system grew into an unwieldy mess. That’s why in 2019 I proposed creating a new config system to make it easier to configure ESLint in a world where JavaScript projects are growing increasingly complex. A significant portion of the new config system has been merged into the main branch, and so it’s time to start learning about how you will configure ESLint in the future. But in order to do that, it’s helpful to take a look back and see how we got into the current state of things.&lt;/p&gt;
&lt;h2 id=&quot;incremental-changes-leading-to-maximum-complexity&quot; tabindex=&quot;-1&quot;&gt;Incremental changes leading to maximum complexity&lt;/h2&gt;
&lt;p&gt;Looking back at how the current config system (called the eslintrc system) evolved, every step made logical sense for where we were at the time. ESLint has always operated on an incremental approach to development where we look at ways to improve what we already have instead of throwing things away to start over. The eslintrc system was no different.&lt;/p&gt;
&lt;h3 id=&quot;the-extends-key&quot; tabindex=&quot;-1&quot;&gt;The &lt;code&gt;extends&lt;/code&gt; key&lt;/h3&gt;
&lt;p&gt;The first significant change to eslintrc was with the introduction of the &lt;code&gt;extends&lt;/code&gt; key. The &lt;code&gt;extends&lt;/code&gt; key, borrowed lovingly from JSHint, allowed users to import another configuration and then augment it, for example:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;&quot;extends&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;./other-config.json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;&quot;rules&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token property&quot;&gt;&quot;semi&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;warn&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So assuming &lt;code&gt;./other-config.json&lt;/code&gt; had some configuration data, you could import that and then add your own &lt;code&gt;rules&lt;/code&gt; settings on top of it. This turned out to be a great step forward for ESLint for a number of reasons.&lt;/p&gt;
&lt;p&gt;First, &lt;code&gt;extends&lt;/code&gt; actually preceded the idea of shareable configs that could be distributed via npm. It was during the implementation of &lt;code&gt;extends&lt;/code&gt; that we realized shareable configs were possible. The files specified in &lt;code&gt;extends&lt;/code&gt; were loaded via the Node.js &lt;code&gt;require()&lt;/code&gt; function, so anything Node.js could load through that function could also work as a config to extend from.&lt;/p&gt;
&lt;p&gt;Second, &lt;code&gt;extends&lt;/code&gt; allowed us to implement &lt;code&gt;eslint:recommended&lt;/code&gt;, the set of rules that we felt were important for everyone to enable. Originally ESLint had several rules enabled by default, but that became a burden for users. So we switched to having all rules off by default, which also was confusing for new users who didn’t see any rules. Adding &lt;code&gt;eslint:recommended&lt;/code&gt; allowed us to make it explicit that you were including a bunch of rules we recommended but you could remove them if you didn’t want to.&lt;/p&gt;
&lt;p&gt;In hindsight, if we had thought things through a little more, we would have removed the configuration cascade at this point. Introducing &lt;code&gt;extends&lt;/code&gt; enabled a lot of the same use cases as the cascade, and keeping both turned out to be a mess that we would spend years trying to fix.&lt;/p&gt;
&lt;h3 id=&quot;personal-configs&quot; tabindex=&quot;-1&quot;&gt;Personal configs&lt;/h3&gt;
&lt;p&gt;The next layer of complexity was added when people requested that we add the ability to have a personal config file at &lt;code&gt;~/.eslintrc&lt;/code&gt;. So we added an additional check: if we didn’t find a config file in the ancestry of the file location, then we would automatically look for a personal config file.&lt;/p&gt;
&lt;h3 id=&quot;multiple-config-file-formats&quot; tabindex=&quot;-1&quot;&gt;Multiple config file formats&lt;/h3&gt;
&lt;p&gt;As part of a refactor, we discovered that it would be trivial to allow different config file formats. Instead of forcing everyone to use a nonstandard &lt;code&gt;.eslintrc&lt;/code&gt; file, we could formalize the JSON format as &lt;code&gt;.eslintrc.json&lt;/code&gt; and also add support for YAML (&lt;code&gt;.eslintrc.yml&lt;/code&gt; or &lt;code&gt;.eslintrc.yaml&lt;/code&gt;) and JavaScript (&lt;code&gt;.eslintrc.js&lt;/code&gt;). For backwards compatibility we continued to support &lt;code&gt;.eslintrc&lt;/code&gt; because it was a trivial amount of code to keep around.&lt;/p&gt;
&lt;p&gt;This also turned out, in hindsight, to not be a great idea. Adding a JavaScript config file format created an incompatibility between it and the non-JS formats: any JavaScript object could be passed into the config and available in rules. Because we didn’t properly validate the config to exactly match the non-JS formats, we ended up with some rules requiring regular expression objects to be passed in to be properly configured. While this could work in the JS config file format, the rules could not be properly configured in non-JS config files. Unfortunately, because plugin rules depended on this functionality, we couldn’t go back and fix it without breaking things.&lt;/p&gt;
&lt;h3 id=&quot;shareable-configs-and-dependencies&quot; tabindex=&quot;-1&quot;&gt;Shareable configs and dependencies&lt;/h3&gt;
&lt;p&gt;Perhaps the biggest problem we faced early on was when npm decided to &lt;a href=&quot;https://github.com/npm/npm/issues/6565#issuecomment-74971689&quot;&gt;stop installing peer dependencies in v3&lt;/a&gt;. Prior to this point, we had recommended that shareable configs include any plugins they depended on as peer dependencies rather than regular dependencies. This was a quirk of the way that &lt;code&gt;extends&lt;/code&gt; was implemented: using &lt;code&gt;require()&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Because shareable configs were data-only and couldn’t directly reference Node.js dependencies, &lt;code&gt;require()&lt;/code&gt; would not automatically load direct dependencies into the path for ESLint to resolve them. Peer dependencies, on the other hand, worked perfectly by just using &lt;code&gt;require()&lt;/code&gt; because those were installed in a location where the normal package lookup worked.&lt;/p&gt;
&lt;p&gt;When npm v3 stopped installing peer dependencies by default, all of the shared configs relying on this behavior stopped working correctly. There is a &lt;a href=&quot;https://github.com/eslint/eslint/issues/3458&quot;&gt;long-running issue&lt;/a&gt; requesting that shareable configs be allowed to use dependencies directly, but the architecture of eslintrc just didn’t allow for it. We would have essentially had to recreate the entire &lt;code&gt;require()&lt;/code&gt; functionality inside of ESLint to work around the way shareable configs were designed. We recommended that shareable configs create a post-install script to install their peer dependencies instead. Not ideal by any stretch of the imagination.&lt;/p&gt;
&lt;p&gt;We added the &lt;code&gt;--resolve-plugins-relative-to&lt;/code&gt; command line option to try and help with this problem, but it wasn’t enough. The most popular requests for help in our &lt;a href=&quot;https://eslint.org/chat/help&quot;&gt;Discord #help channel&lt;/a&gt; have to do with improper resolution of plugins from config files.&lt;/p&gt;
&lt;p&gt;npm eventually changed back to installing peer dependencies by default in v7, but by that point the damage on the ESLint ecosystem had been done.&lt;/p&gt;
&lt;h3 id=&quot;the-root-key&quot; tabindex=&quot;-1&quot;&gt;The &lt;code&gt;root&lt;/code&gt; key&lt;/h3&gt;
&lt;p&gt;As time went on, the config cascade continued to cause problems for users. Most frequently, people wouldn’t realize that they had a config file in an ancestor directory of the project they were working on. This would create confusion because they would be getting ESLint settings that they seemingly hadn’t configured.&lt;/p&gt;
&lt;p&gt;To help with this problem we introduced the &lt;code&gt;root&lt;/code&gt; property for configuration files. When &lt;code&gt;root: true&lt;/code&gt; is specified in a config, the search for further config files doesn’t proceed to ancestor directories. This stopped a bit of the confusion and we ended up automatically including &lt;code&gt;root: true&lt;/code&gt; in configs that ESLint generated via the old &lt;code&gt;--init&lt;/code&gt; command to help users start off with the least amount of confusion.&lt;/p&gt;
&lt;h3 id=&quot;the-overrides-key&quot; tabindex=&quot;-1&quot;&gt;The &lt;code&gt;overrides&lt;/code&gt; key&lt;/h3&gt;
&lt;p&gt;ESLint continued to receive requests for more powerful ways to configure their projects. More specifically, there were requests to provide &lt;a href=&quot;https://github.com/eslint/eslint/issues/3611&quot;&gt;glob-based configs&lt;/a&gt; from within existing config files. This led to the creation of an &lt;code&gt;overrides&lt;/code&gt; key that would let you further modify configurations for a specific subset of files that ESLint was linting. Here’s an example:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;&quot;rules&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token property&quot;&gt;&quot;quotes&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;double&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;&quot;overrides&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token property&quot;&gt;&quot;files&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;bin/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;lib/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token property&quot;&gt;&quot;excludedFiles&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;*.test.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token property&quot;&gt;&quot;rules&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token property&quot;&gt;&quot;quotes&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;single&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this case, the JavaScript files in &lt;code&gt;bin&lt;/code&gt; and &lt;code&gt;lib&lt;/code&gt; prefer single quotes instead of the double quotes preferred everywhere else.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;overrides&lt;/code&gt; key with glob-based configuration turned out to be a much better way of accomplishing what the configuration cascade was attempting to do. Once again, in hindsight, this would have been the perfect time to try and remove the cascade…but we didn’t. And the complexity didn’t stop there.&lt;/p&gt;
&lt;h3 id=&quot;adding-extends-to-overrides&quot; tabindex=&quot;-1&quot;&gt;Adding &lt;code&gt;extends&lt;/code&gt; to &lt;code&gt;overrides&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The last step of eslintrc development was to add the &lt;code&gt;extends&lt;/code&gt; key to &lt;code&gt;overrides&lt;/code&gt; configurations, allowing users to inject additional config data into a glob-based config object, like this:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;&quot;rules&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token property&quot;&gt;&quot;quotes&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;double&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;&quot;overrides&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token property&quot;&gt;&quot;files&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;bin/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;lib/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token property&quot;&gt;&quot;excludedFiles&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;*.test.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token property&quot;&gt;&quot;extends&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;eslint:recommended&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token property&quot;&gt;&quot;rules&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token property&quot;&gt;&quot;quotes&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;single&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This addition also introduced a lot of additional complexity because we had to figure out how to merge glob patterns between two different configs. The end result was that &lt;code&gt;extends&lt;/code&gt; inside of an &lt;code&gt;overrides&lt;/code&gt; config would use an AND operator to merge &lt;code&gt;files&lt;/code&gt; and &lt;code&gt;excludedFiles&lt;/code&gt;. If you’re not sure what exactly that means, you’re not alone. It’s confusing even to us.&lt;/p&gt;
&lt;h2 id=&quot;the-need-for-simplification&quot; tabindex=&quot;-1&quot;&gt;The need for simplification&lt;/h2&gt;
&lt;p&gt;Around the new year of 2019, I was getting more concerned about the complexity of the eslintrc system. We were getting more and more questions about obscure error messages related to loading config files that couldn’t find other config files or plugins. Additionally, the team was collectively becoming afraid of touching anything to do with the config system. No one really understood all of the different permutations around calculating the final config for any given file. We had fallen into the trap that many software projects do: we kept adding new features without taking a a step back to look at the problem (and solution) holistically. This had led to an almost unmaintainable part of our codebase.&lt;/p&gt;
&lt;p&gt;It was at this time that I did a thought experiment: what would the config system look like if I started from scratch, today, knowing everything that I now know about ESLint? What followed was the most contentious &lt;a href=&quot;https://github.com/eslint/rfcs/pull/9&quot;&gt;RFC proposal&lt;/a&gt; in the history of ESLint. At the time, the team was almost evenly split between those who wanted to throw away eslintrc and start from scratch and those who felt that eslintrc could be saved with more iterations. Ultimately, after 18 months of revisions and debate, we decided that it was time to embark on an entirely new config system built with today’s reality in mind.&lt;/p&gt;
&lt;h2 id=&quot;the-path-forward&quot; tabindex=&quot;-1&quot;&gt;The path forward&lt;/h2&gt;
&lt;p&gt;It’s now 2022 and we finally have the first implementation of the new config system released in &lt;a href=&quot;https://eslint.org/blog/2022/08/eslint-v8.21.0-released/&quot;&gt;v8.21.0&lt;/a&gt;. The new system, which we’ve nicknamed “flat config,” is designed to feel familiar to existing ESLint users while dramatically simplifying the process of setting up a config file. Flat config isn’t available through the CLI yet as we continue to work on bugs and gathering feedback, but it is available to developers who use the API directly. I’ll be discussing the design of flat config in &lt;a href=&quot;https://eslint.org/blog/2022/08/new-config-system-part-2/&quot;&gt;part 2&lt;/a&gt; of this series.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.21.0 released</title>
    <link href="https://eslint.org/blog/2022/08/eslint-v8.21.0-released/"/>
    <updated>2022-08-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/08/eslint-v8.21.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ESLint will now print deprecation warnings for two changes that are coming in ESLint v9: First, rules with options must specify schemas. Second, rules must be defined using the object-style format that has been available since ESLint v2 rather than the legacy function-style format. See &lt;a href=&quot;https://github.com/eslint/rfcs/tree/main/designs/2021-schema-object-rules&quot;&gt;RFC85&lt;/a&gt; for full details.&lt;/li&gt;
&lt;li&gt;We took a big step toward ESLint’s &lt;a href=&quot;https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new&quot;&gt;new config system&lt;/a&gt;! The new &lt;code&gt;FlatESLint&lt;/code&gt; class is now merged. Its API is not yet stable, and not all features are implemented yet, but it is accessible via the Node.js API for early testing. See &lt;a href=&quot;https://github.com/eslint/rfcs/tree/main/designs/2019-config-simplification&quot;&gt;RFC9&lt;/a&gt; for the original design.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b43ea14a8af5fc3dbac38fa9d5bc71741328c16&quot;&gt;&lt;code&gt;7b43ea1&lt;/code&gt;&lt;/a&gt; feat: Implement FlatESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16149&quot;&gt;#16149&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/92bf49a4b39dde728fbc6d348e62c7009e21cf7d&quot;&gt;&lt;code&gt;92bf49a&lt;/code&gt;&lt;/a&gt; feat: improve the key width calculation in &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;&lt;code&gt;key-spacing&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16154&quot;&gt;#16154&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4615421cb4825e2ad22e275ec9439756d56299c&quot;&gt;&lt;code&gt;c461542&lt;/code&gt;&lt;/a&gt; feat: add new &lt;code&gt;allowLineSeparatedGroups&lt;/code&gt; option to the &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;&lt;code&gt;sort-keys&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16138&quot;&gt;#16138&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1cdcbca8a961a057a9db40df412f249545befe2b&quot;&gt;&lt;code&gt;1cdcbca&lt;/code&gt;&lt;/a&gt; feat: add deprecation warnings for legacy API in &lt;code&gt;RuleTester&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16063&quot;&gt;#16063&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03967755270ae28eec651281c50b6990d3983f48&quot;&gt;&lt;code&gt;0396775&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/lines-around-comment&quot;&gt;lines-around-comment&lt;/a&gt; apply &lt;code&gt;allowBlockStart&lt;/code&gt; for switch statements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16153&quot;&gt;#16153&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2aadc93272f1ab7f40246c6b18c4056660f2b3a2&quot;&gt;&lt;code&gt;2aadc93&lt;/code&gt;&lt;/a&gt; docs: add anchors to headings inside docs content (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16134&quot;&gt;#16134&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/889251194867b1f394c571a5982249329fa44cfd&quot;&gt;&lt;code&gt;8892511&lt;/code&gt;&lt;/a&gt; chore: Upgrade to Espree 9.3.3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16173&quot;&gt;#16173&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1233beea3938fc4234c8f75917776832226fc3c8&quot;&gt;&lt;code&gt;1233bee&lt;/code&gt;&lt;/a&gt; chore: switch to eslint-plugin-node’s maintained fork (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16150&quot;&gt;#16150&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97b95c068d5b35fae68ca919257b61430271ac76&quot;&gt;&lt;code&gt;97b95c0&lt;/code&gt;&lt;/a&gt; chore: upgrade puppeteer v13 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16151&quot;&gt;#16151&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.20.0 released</title>
    <link href="https://eslint.org/blog/2022/07/eslint-v8.20.0-released/"/>
    <updated>2022-07-16T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/07/eslint-v8.20.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;ESLint now catches exceptions thrown by &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring/plugins#specifying-processor&quot;&gt;preprocessors&lt;/a&gt; and reports them as lint errors. This matches how ESLint already handled parser errors. Previously, exceptions thrown by preprocessors would crash ESLint.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ca83178b18cd5d649bd52a20aef8f8b3f48d3085&quot;&gt;&lt;code&gt;ca83178&lt;/code&gt;&lt;/a&gt; feat: catch preprocess errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16105&quot;&gt;#16105&lt;/a&gt;) (JounQin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/30be0ed4d84dd436e6c2e345e264c10b2bd37308&quot;&gt;&lt;code&gt;30be0ed&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-warning-comments&quot;&gt;no-warning-comments&lt;/a&gt; rule escapes special RegEx characters in terms (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16090&quot;&gt;#16090&lt;/a&gt;) (Lachlan Hunt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfe5e884098874bb512609bcd94a5e5ed797839d&quot;&gt;&lt;code&gt;bfe5e88&lt;/code&gt;&lt;/a&gt; fix: ignore spacing before &lt;code&gt;]&lt;/code&gt; and &lt;code&gt;}&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/comma-spacing&quot;&gt;comma-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16113&quot;&gt;#16113&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/845c4f40274ccb3727c624db44c7a23aafa71318&quot;&gt;&lt;code&gt;845c4f4&lt;/code&gt;&lt;/a&gt; docs: Add website team details (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16115&quot;&gt;#16115&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a0dfdb9938ffdcea52047466bac11ea983f4b29&quot;&gt;&lt;code&gt;5a0dfdb&lt;/code&gt;&lt;/a&gt; docs: Link to blog post in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-binary-expression&quot;&gt;no-constant-binary-expression&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16112&quot;&gt;#16112&lt;/a&gt;) (Jordan Eldredge)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bc692a9bf5c664c646ce386eff44eb706c231127&quot;&gt;&lt;code&gt;bc692a9&lt;/code&gt;&lt;/a&gt; docs: remove install command (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16084&quot;&gt;#16084&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/49ca3f090425e06fdf6e66bcf2415508c46671e1&quot;&gt;&lt;code&gt;49ca3f0&lt;/code&gt;&lt;/a&gt; docs: don’t show toc when content not found (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16095&quot;&gt;#16095&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba19e3f80a32ceae82e0ed6c0acf16061d8370da&quot;&gt;&lt;code&gt;ba19e3f&lt;/code&gt;&lt;/a&gt; docs: enhance 404 page UI (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16097&quot;&gt;#16097&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a75d3b47b84f59c080c0c8301ae859fa64aa0f0f&quot;&gt;&lt;code&gt;a75d3b4&lt;/code&gt;&lt;/a&gt; docs: remove unused meta.docs.category field in working-with-rules page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16109&quot;&gt;#16109&lt;/a&gt;) (Brandon Scott)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cdc020639022dd931863460273de61f4ed4ce0f8&quot;&gt;&lt;code&gt;cdc0206&lt;/code&gt;&lt;/a&gt; docs: add formatters page edit link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16094&quot;&gt;#16094&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d1ed22dede531108c8a7899d513f64f0662c135&quot;&gt;&lt;code&gt;4d1ed22&lt;/code&gt;&lt;/a&gt; docs: preselect default theme (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16098&quot;&gt;#16098&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b79612f0bdf860142401033f32fe9a5b8cd7d03&quot;&gt;&lt;code&gt;4b79612&lt;/code&gt;&lt;/a&gt; docs: add missing correct/incorrect containers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16087&quot;&gt;#16087&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/09f6acbf2136e3084a3174607ab29a48d5d519b0&quot;&gt;&lt;code&gt;09f6acb&lt;/code&gt;&lt;/a&gt; docs: fix UI bug on rules index and details pages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16082&quot;&gt;#16082&lt;/a&gt;) (Deepshika S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5db264931fd6259e064b5cf24b4233f5aaa4c7d&quot;&gt;&lt;code&gt;f5db264&lt;/code&gt;&lt;/a&gt; docs: remove remaining duplicate rule descriptions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16093&quot;&gt;#16093&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/32a6b2a5caae8fa3734dfbdb9640bb4963fc5f4f&quot;&gt;&lt;code&gt;32a6b2a&lt;/code&gt;&lt;/a&gt; docs: Add scroll behaviour smooth (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16056&quot;&gt;#16056&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bbf8df41c901d41753ca4f3f0baf021944782597&quot;&gt;&lt;code&gt;bbf8df4&lt;/code&gt;&lt;/a&gt; chore: Mark autogenerated release blog post as draft (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16130&quot;&gt;#16130&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eee43067f635c0ec3b61e416f47849029d12268d&quot;&gt;&lt;code&gt;eee4306&lt;/code&gt;&lt;/a&gt; chore: update internal lint dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16088&quot;&gt;#16088&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9615a42c9f065188024423a28b603cb93dad18d4&quot;&gt;&lt;code&gt;9615a42&lt;/code&gt;&lt;/a&gt; chore: update formatter examples template to avoid markdown lint error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16085&quot;&gt;#16085&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62541edf5843ff8e01f14f870701d5df0b2c1cb5&quot;&gt;&lt;code&gt;62541ed&lt;/code&gt;&lt;/a&gt; chore: fix markdown linting error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16083&quot;&gt;#16083&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Interesting bugs caught by no-constant-binary-expression</title>
    <link href="https://eslint.org/blog/2022/07/interesting-bugs-caught-by-no-constant-binary-expression/"/>
    <updated>2022-07-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/07/interesting-bugs-caught-by-no-constant-binary-expression/</id>
    <content type="html">&lt;p&gt;In &lt;a href=&quot;https://eslint.org/blog/2022/04/eslint-v8.14.0-released&quot;&gt;ESLint v8.14.0&lt;/a&gt; I contributed a new core rule called &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-binary-expression&quot;&gt;no-constant-binary-expression&lt;/a&gt; which has surprised me with the wide variety of subtle and interesting bugs it has been able to detect.&lt;/p&gt;
&lt;p&gt;In this post I’ll explain what the rule does and share some examples of real bugs it has detected in popular open source projects such as Material UI, Webpack, VS Code, and Firefox as well as a few interesting bugs that it found internally at Meta. I hope these examples will convince you to try enabling the rule in the projects you work on!&lt;/p&gt;
&lt;h2 id=&quot;what-does-no-constant-binary-expression-do%3F&quot; tabindex=&quot;-1&quot;&gt;What does &lt;code&gt;no-constant-binary-expression&lt;/code&gt; do?&lt;/h2&gt;
&lt;p&gt;The rule checks for comparisons (&lt;code&gt;==&lt;/code&gt;, &lt;code&gt;!==&lt;/code&gt;, etc) where the outcome cannot vary at runtime, and logical expressions (&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;, &lt;code&gt;??&lt;/code&gt;, &lt;code&gt;||&lt;/code&gt;) which will either &lt;em&gt;always&lt;/em&gt; or &lt;em&gt;never&lt;/em&gt; short-circuit.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;+x == null&lt;/code&gt; will always be false, because &lt;code&gt;+&lt;/code&gt; will coerce &lt;code&gt;x&lt;/code&gt; into a number, and a number is never nullish.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{ ...foo } || DEFAULT&lt;/code&gt; will never return &lt;code&gt;DEFAULT&lt;/code&gt; because objects are always truthy.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both of these are examples of expressions that &lt;em&gt;look&lt;/em&gt; like they can affect the way the program evaluates, but in reality, do not.&lt;/p&gt;
&lt;p&gt;This rule originally started as just an attempt to detect unnecessary null checks. However, as I worked on it, I realized useless null checks were just a special case of a broader category: useless code. Eventually it clicked for me: developers don’t intend to write useless code, and code that does not match the developer’s intent is by definition a bug. Therefore, any useless code you can detect is a bug.&lt;/p&gt;
&lt;p&gt;This realization was confirmed for me when I ran the first version of the rule against our code base at Meta, and it detected a wide variety of subtle and interesting bugs which had made it through code review.&lt;/p&gt;
&lt;h2 id=&quot;real-world-bugs-found-with-no-constant-binary-expressions&quot; tabindex=&quot;-1&quot;&gt;Real world bugs found with &lt;code&gt;no-constant-binary-expressions&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;In this section I’ll share a number of types of bugs that this rule can catch. Each includes at least one concrete example detected in a popular open source project. My choice to include real examples here is not to shame anyone or any project, but to drive home the fact that these are errors that any team can easily make.&lt;/p&gt;
&lt;h3 id=&quot;confusing-operator-precedence&quot; tabindex=&quot;-1&quot;&gt;Confusing operator precedence&lt;/h3&gt;
&lt;p&gt;The most common class of bug the rule finds is places where developers misunderstood the precedence of operators, particularly unary operators like &lt;code&gt;!&lt;/code&gt;, &lt;code&gt;+&lt;/code&gt; and &lt;code&gt;typeof&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;whitelist&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;has&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;specifier&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;imported&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;name&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;From &lt;a href=&quot;https://github.com/mui/material-ui/blob/60f02a7a6b48092eedd2c25b15a7f643168a001f/packages/mui-codemod/src/v5.0.0/top-level-imports.js#L73:L73&quot;&gt;Material UI&lt;/a&gt; (also: VS Code &lt;a href=&quot;https://github.com/captbaritone/vscode/blob/ab86e0229d6b4d0cb49cfd6747c92cafcd2bd4af/src/vs/workbench/contrib/timeline/browser/timelinePane.ts#L64&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://github.com/captbaritone/vscode/blob/ab86e0229d6b4d0cb49cfd6747c92cafcd2bd4af/src/vs/workbench/contrib/terminal/browser/terminalProfileResolverService.ts#L456:L456&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://github.com/webpack/webpack/blob/3ad4fcac25a976277f2d9cceb37bc81602e96b13/lib/ExportsInfo.js#L468:L468&quot;&gt;Webpack&lt;/a&gt;, &lt;a href=&quot;https://phabricator.services.mozilla.com/D145655&quot;&gt;Mozilla&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;confusing-%3F%3F-and-%7C%7C-precedence&quot; tabindex=&quot;-1&quot;&gt;Confusing &lt;code&gt;??&lt;/code&gt; and &lt;code&gt;||&lt;/code&gt; precedence&lt;/h3&gt;
&lt;p&gt;When trying to define default values, people get confused with expressions like &lt;code&gt;a === b ?? c&lt;/code&gt; and assume it will be parsed as &lt;code&gt;a === (b ?? c)&lt;/code&gt;. When in actuality it will be parsed as &lt;code&gt;(a === b) ?? c&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;shouldShowWelcome&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;viewModel&lt;span class=&quot;token operator&quot;&gt;?.&lt;/span&gt;welcomeExperience &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; WelcomeExperience&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ForWorkspace &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;From &lt;a href=&quot;https://github.com/captbaritone/vscode/blob/ab86e0229d6b4d0cb49cfd6747c92cafcd2bd4af/src/vs/workbench/contrib/testing/browser/testingExplorerView.ts#L118:L118&quot;&gt;VS Code&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Aside: Observing how frequently developers get confused by operator precedence inspired me to experiment with &lt;a href=&quot;https://jordaneldredge.com/blog/a-vs-code-extension-to-combat-js-precedence-confusion/&quot;&gt;a VS Code extension&lt;/a&gt; to visually clarify how precedence gets interpreted.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;expecting-objects-to-be-compared-by-value&quot; tabindex=&quot;-1&quot;&gt;Expecting objects to be compared by value&lt;/h3&gt;
&lt;p&gt;Developers coming from other languages where structures are compared by value, rather than by reference, can easily fall into the trap of thinking they can do things like test if an object is empty by comparing with a newly created empty object. Or course in JavaScript, objects are compared by reference, and no value can ever be equal to a newly constructed object literal.&lt;/p&gt;
&lt;p&gt;In this example, &lt;code&gt;hasData&lt;/code&gt; will always be set to true because &lt;code&gt;data&lt;/code&gt; can never be referentially equal to a newly created object.&lt;/p&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;hasData &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; hasData &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;From &lt;a href=&quot;https://hg.mozilla.org/try/rev/0fe5678fb8b71f4eb26f0a153c52d0be45fc5ac1#l3.34&quot;&gt;Firefox&lt;/a&gt; (also: &lt;a href=&quot;https://hg.mozilla.org/try/rev/0fe5678fb8b71f4eb26f0a153c52d0be45fc5ac1#l1.13&quot;&gt;Firefox&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;expecting-empty-objects-to-be-false-or-null&quot; tabindex=&quot;-1&quot;&gt;Expecting empty objects to be &lt;code&gt;false&lt;/code&gt; or &lt;code&gt;null&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Another common categrory of JavaScript error is expecting empty objects to be nullish or falsy. This is likely an easy mistake to make for folks coming from a language like Python where empty lists and dictionaries are falsy.&lt;/p&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; newConfigValue &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;configProfiles &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;??&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;From &lt;a href=&quot;https://github.com/captbaritone/vscode/blob/ab86e0229d6b4d0cb49cfd6747c92cafcd2bd4af/src/vs/workbench/contrib/terminal/browser/terminalProfileQuickpick.ts#L126:L126&quot;&gt;VS Code&lt;/a&gt; (also: VS Code &lt;a href=&quot;https://github.com/captbaritone/vscode/blob/ab86e0229d6b4d0cb49cfd6747c92cafcd2bd4af/src/vs/platform/terminal/node/ptyService.ts#L369:L369&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://github.com/captbaritone/vscode/blob/ab86e0229d6b4d0cb49cfd6747c92cafcd2bd4af/src/vs/workbench/contrib/terminal/browser/terminalProfileResolverService.ts#L484:L484&quot;&gt;2&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;is-it-%3E%3D-or-%3D%3E%3F&quot; tabindex=&quot;-1&quot;&gt;Is it &lt;code&gt;&amp;gt;=&lt;/code&gt; or &lt;code&gt;=&amp;gt;&lt;/code&gt;?&lt;/h3&gt;
&lt;p&gt;I’ve only seen this particular typo once, but I wanted to include it because it’s a great example of the unexpected types of bugs this rule can catch.&lt;/p&gt;
&lt;p&gt;Here, the developer meant to test if a value was greater than or equal to zero (&lt;code&gt;&amp;gt;= 0&lt;/code&gt;), but accidentally reversed the order of the characters and created an arrow function that returned &lt;code&gt;0 &amp;amp;&amp;amp; startWidth &amp;lt;= 1&lt;/code&gt;!&lt;/p&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;assert&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;startWidth&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; startWidth &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;From &lt;a href=&quot;https://phabricator.services.mozilla.com/rMOZILLACENTRAL925b8d1ad45f80faee052492b3b43f5120052405&quot;&gt;Mozilla&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;other-errors-caught-by-no-constant-binary-expression&quot; tabindex=&quot;-1&quot;&gt;Other errors caught by &lt;code&gt;no-constant-binary-expression&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The above five categories of errors are not exhaustive. When I originally ran the first version of this rule on our (very) large monorepo at Meta, it found over 500 issues. While many fell into the categories outlined above, there was also a long-tail of other interesting bugs. Some highlights include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Thinking &lt;code&gt;||&lt;/code&gt; allows for set operations: &lt;code&gt;states.includes(&#39;VALID&#39; || &#39;IN_PROGRESS&#39;)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Thinking primitive functions pass through nulls: &lt;code&gt;Number(x) == null&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Not knowing primitive &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/Number&quot;&gt;constructors&lt;/a&gt; return boxed primitives: &lt;code&gt;new Number(x) === 10&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I never would have set out to lint for these specific issues individually, but by simply trying to identify anything “useless” we were able to find and correct them.&lt;/p&gt;
&lt;h2 id=&quot;conclusion&quot; tabindex=&quot;-1&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;As you’ve now seen &lt;code&gt;no-constant-binary-expression&lt;/code&gt; is capable of detecting a variety of different types of bugs. The rule accomplishes this not because it’s programmed to look for those specific issues, but because all those bugs have one thing in common: they manifest as useless code. Because developers generally don’t intend to write useless code, detecting useless code generally results in detecting bugs.&lt;/p&gt;
&lt;p&gt;If you’ve found these examples compelling, please consider enabling &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-binary-expression&quot;&gt;no-constant-binary-expression&lt;/a&gt; in your ESLint config:&lt;/p&gt;
&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// eslintrc&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// Requires eslint &gt;= v8.14.0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token string-property property&quot;&gt;&quot;no-constant-binary-expression&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you do, and it finds bugs, I’d love to &lt;a href=&quot;https://twitter.com/captbaritone&quot;&gt;hear about them&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thanks to &lt;a href=&quot;https://twitter.com/bradzacher&quot;&gt;Brad Zacher&lt;/a&gt; for the original observation which inspired this work and the suggestion to propose it as a new core rule. And thanks to &lt;a href=&quot;https://github.com/mdjermanovic&quot;&gt;Milos Djermanovic&lt;/a&gt; for significant contributions during code review.&lt;/em&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.19.0 released</title>
    <link href="https://eslint.org/blog/2022/07/eslint-v8.19.0-released/"/>
    <updated>2022-07-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/07/eslint-v8.19.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; rule now supports the &lt;code&gt;importNames&lt;/code&gt; option for more granular control of imports when matching modules with &lt;code&gt;patterns&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7023628eb3af1bcc0151afab2bf617217fae51b1&quot;&gt;&lt;code&gt;7023628&lt;/code&gt;&lt;/a&gt; feat: add importNames support for patterns in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16059&quot;&gt;#16059&lt;/a&gt;) (Brandon Scott)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/472c3681364833f697d726abc3c33fbe2663eeb7&quot;&gt;&lt;code&gt;472c368&lt;/code&gt;&lt;/a&gt; feat: fix handling of blockless &lt;code&gt;with&lt;/code&gt; statements in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16068&quot;&gt;#16068&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc81848238ee0f6ff93615875ea4b8e95dc09249&quot;&gt;&lt;code&gt;fc81848&lt;/code&gt;&lt;/a&gt; fix: throw helpful exception when rule has wrong return type (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16075&quot;&gt;#16075&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ae0574fc78c4a2b406625e4792cb2859cb9bcb1&quot;&gt;&lt;code&gt;3ae0574&lt;/code&gt;&lt;/a&gt; docs: Remove duplicate rule descriptions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16052&quot;&gt;#16052&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f50cf436aaa5dff1273f4753dd3fc6782f95a045&quot;&gt;&lt;code&gt;f50cf43&lt;/code&gt;&lt;/a&gt; docs: Add base href to each page to fix relative URLs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16046&quot;&gt;#16046&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae4b449719d496fd611903d596341ec4c1d81c16&quot;&gt;&lt;code&gt;ae4b449&lt;/code&gt;&lt;/a&gt; docs: make logo link clickable on small width screens (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16058&quot;&gt;#16058&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/280f898bff9b809327e4c94cea3632ba95af4485&quot;&gt;&lt;code&gt;280f898&lt;/code&gt;&lt;/a&gt; docs: use only fenced code blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16044&quot;&gt;#16044&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5d63b9e15d9f325ef4953b683cb67133b05e9ea&quot;&gt;&lt;code&gt;f5d63b9&lt;/code&gt;&lt;/a&gt; docs: add listener only if element exists (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16045&quot;&gt;#16045&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b639ccb2fb0f0a7d7aaee1f1fc2881a237de95d&quot;&gt;&lt;code&gt;8b639cc&lt;/code&gt;&lt;/a&gt; docs: add missing migrating-to-8.0.0 in the user guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16048&quot;&gt;#16048&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8e68c1f7e2b8fa5c108216f74dcd3100aa33b0f&quot;&gt;&lt;code&gt;b8e68c1&lt;/code&gt;&lt;/a&gt; docs: Update release process (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16036&quot;&gt;#16036&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d0cb11c6d134896d8920c9bf3cc3e492f0eb8e2&quot;&gt;&lt;code&gt;6d0cb11&lt;/code&gt;&lt;/a&gt; docs: remove table of contents from markdown text (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15999&quot;&gt;#15999&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e88493395b3be2b08e14e9b84d20d2733f78582c&quot;&gt;&lt;code&gt;e884933&lt;/code&gt;&lt;/a&gt; chore: use &lt;code&gt;github-slugger&lt;/code&gt; for markdown anchors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16067&quot;&gt;#16067&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02e9cb01e7663af3a3fd16725afc7d71e73b9eed&quot;&gt;&lt;code&gt;02e9cb0&lt;/code&gt;&lt;/a&gt; chore: revamp carbon ad style (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16078&quot;&gt;#16078&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b6aee9591ecc2e2f5738ab8bef20faac1e05b5c3&quot;&gt;&lt;code&gt;b6aee95&lt;/code&gt;&lt;/a&gt; chore: remove unwanted comments from rules markdown (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16054&quot;&gt;#16054&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6840940a766d671831d5cee0e3c0e2f4e642632a&quot;&gt;&lt;code&gt;6840940&lt;/code&gt;&lt;/a&gt; chore: correctly use .markdownlintignore in Makefile (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16060&quot;&gt;#16060&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/48904fb00fc5001e534034e2e513ca99f3ada35e&quot;&gt;&lt;code&gt;48904fb&lt;/code&gt;&lt;/a&gt; chore: add missing images (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16017&quot;&gt;#16017&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/910f741885a18b7744d4125e98e554312bc873eb&quot;&gt;&lt;code&gt;910f741&lt;/code&gt;&lt;/a&gt; chore: add architecture to nav (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16039&quot;&gt;#16039&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9bb24c1deb7ab6743080520d11aefe9c6b8b8f2d&quot;&gt;&lt;code&gt;9bb24c1&lt;/code&gt;&lt;/a&gt; chore: add correct incorrect in all rules doc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16021&quot;&gt;#16021&lt;/a&gt;) (Deepshika S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a96af853dcbe29c9f125a63528f3fec9fc0aae8&quot;&gt;&lt;code&gt;5a96af8&lt;/code&gt;&lt;/a&gt; chore: prepare versions data file (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16035&quot;&gt;#16035&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/50afe6fe8c92a1d5d52415e149d52e1e129c3cc7&quot;&gt;&lt;code&gt;50afe6f&lt;/code&gt;&lt;/a&gt; chore: Included githubactions in the dependabot config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15985&quot;&gt;#15985&lt;/a&gt;) (Naveen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/473411e61d46c2bbac70e9a66d434d477851d98a&quot;&gt;&lt;code&gt;473411e&lt;/code&gt;&lt;/a&gt; chore: add deploy workflow for playground (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16034&quot;&gt;#16034&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a30b66c030bf45864784c0550276267e5a146697&quot;&gt;&lt;code&gt;a30b66c&lt;/code&gt;&lt;/a&gt; chore: fix print style (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16025&quot;&gt;#16025&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f4dad59e5c7e966291d6f8c1456a465ae5629061&quot;&gt;&lt;code&gt;f4dad59&lt;/code&gt;&lt;/a&gt; chore: add noindex meta tag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16016&quot;&gt;#16016&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db387a87b23c398ed691ba35bdf3b6aa7dcfe750&quot;&gt;&lt;code&gt;db387a8&lt;/code&gt;&lt;/a&gt; chore: fix sitemap (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16026&quot;&gt;#16026&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/285fbc5e6a92c50e1195f252675b599ecd929b9d&quot;&gt;&lt;code&gt;285fbc5&lt;/code&gt;&lt;/a&gt; chore: remove TOC from printable (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16020&quot;&gt;#16020&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e84c2148cc2d25a7076e73233ae41bc1a000a53&quot;&gt;&lt;code&gt;8e84c21&lt;/code&gt;&lt;/a&gt; chore: remove ligatures from fonts (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16019&quot;&gt;#16019&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.18.0 released</title>
    <link href="https://eslint.org/blog/2022/06/eslint-v8.18.0-released/"/>
    <updated>2022-06-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/06/eslint-v8.18.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#per-rule-performance&quot;&gt;Per-rule performance report&lt;/a&gt; now includes time spent in &lt;code&gt;create()&lt;/code&gt; of rules. This time is added to the time spent in the listeners.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a6273b83b103c463937936ef2404575758a7baa4&quot;&gt;&lt;code&gt;a6273b8&lt;/code&gt;&lt;/a&gt; feat: account for rule creation time in performance reports (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15982&quot;&gt;#15982&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f364d47013d146cdea42b27a7b24d105223f5ffe&quot;&gt;&lt;code&gt;f364d47&lt;/code&gt;&lt;/a&gt; fix: Make &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; treat for…of loops same as for…in loops (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15868&quot;&gt;#15868&lt;/a&gt;) (Alex Bass)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4871047dbd0c5ef5e4089425a85ac85dcd9cf263&quot;&gt;&lt;code&gt;4871047&lt;/code&gt;&lt;/a&gt; docs: Update analytics, canonical URL, ads (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15996&quot;&gt;#15996&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cddad1495fbc1750c26330f7aadc6647e2eebac3&quot;&gt;&lt;code&gt;cddad14&lt;/code&gt;&lt;/a&gt; docs: Add correct/incorrect containers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15998&quot;&gt;#15998&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b04bc6f1d558d9ad5eb57383a779fec5a170b3d3&quot;&gt;&lt;code&gt;b04bc6f&lt;/code&gt;&lt;/a&gt; docs: Add rules meta info to rule pages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15902&quot;&gt;#15902&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1324f10ac58d3685fdb656a4fc9d1e5c9d035e42&quot;&gt;&lt;code&gt;1324f10&lt;/code&gt;&lt;/a&gt; docs: unify the wording referring to optional exception (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15893&quot;&gt;#15893&lt;/a&gt;) (Abdelrahman Elkady)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad54d0246797cdd849948e7a5d31571c498af7aa&quot;&gt;&lt;code&gt;ad54d02&lt;/code&gt;&lt;/a&gt; docs: add missing trailing slash to some internal links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15991&quot;&gt;#15991&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df7768e16a5ab55da97749bb89ff19f98ce0cc6c&quot;&gt;&lt;code&gt;df7768e&lt;/code&gt;&lt;/a&gt; docs: Switch to version-relative URLs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15978&quot;&gt;#15978&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21d647904dc30f9484b22acdd9243a6d0ecfba38&quot;&gt;&lt;code&gt;21d6479&lt;/code&gt;&lt;/a&gt; docs: change some absolute links to relative (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15970&quot;&gt;#15970&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f31216a90a6204ed1fd56547772376a10f5d3ebb&quot;&gt;&lt;code&gt;f31216a&lt;/code&gt;&lt;/a&gt; docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed49f15fad96060501927ca27ebda1a4c736ed04&quot;&gt;&lt;code&gt;ed49f15&lt;/code&gt;&lt;/a&gt; build: remove unwanted parallel and image-min for dev server (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15986&quot;&gt;#15986&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6e2e632fa3710cfa467b15350b08dea6e0e3dfc&quot;&gt;&lt;code&gt;f6e2e63&lt;/code&gt;&lt;/a&gt; chore: fix ‘replaced by’ rule list (&lt;a href=&quot;https://github.com/eslint/eslint/issues/16007&quot;&gt;#16007&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d94dc84ae76a36b4ee9268c40d8536d2f5b1c63c&quot;&gt;&lt;code&gt;d94dc84&lt;/code&gt;&lt;/a&gt; chore: remove unused deprecation warnings (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15994&quot;&gt;#15994&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cdcf11e457a2455bd8875d78651fec55dd148139&quot;&gt;&lt;code&gt;cdcf11e&lt;/code&gt;&lt;/a&gt; chore: fix versions link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15995&quot;&gt;#15995&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d2a871543a12143fa0ecea13d7508021fd019031&quot;&gt;&lt;code&gt;d2a8715&lt;/code&gt;&lt;/a&gt; chore: add trailing slash to &lt;code&gt;pathPrefix&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15993&quot;&gt;#15993&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58a1bf0de33adb1d54c8051090f01984daa08c86&quot;&gt;&lt;code&gt;58a1bf0&lt;/code&gt;&lt;/a&gt; chore: tweak URL rewriting for local previews (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15992&quot;&gt;#15992&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/80404d28f040df49706ba2c1e954aee945711aa9&quot;&gt;&lt;code&gt;80404d2&lt;/code&gt;&lt;/a&gt; chore: remove docs deploy workflow (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15984&quot;&gt;#15984&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71bc75012b1377d3c7e57deea0ad06f99c4c65bf&quot;&gt;&lt;code&gt;71bc750&lt;/code&gt;&lt;/a&gt; chore: Set permissions for GitHub actions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15971&quot;&gt;#15971&lt;/a&gt;) (Naveen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90ff64742ede6ef29018cb967fc4f20d7b85b592&quot;&gt;&lt;code&gt;90ff647&lt;/code&gt;&lt;/a&gt; chore: avoid generating subdirectories for each page on new docs site (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15967&quot;&gt;#15967&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.17.0 released</title>
    <link href="https://eslint.org/blog/2022/06/eslint-v8.17.0-released/"/>
    <updated>2022-06-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/06/eslint-v8.17.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;no-use-before-define&lt;/a&gt; rule has a new option &lt;code&gt;allowNamedExports&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/55319e133f0862a008db3557d7350f154f2c784f&quot;&gt;&lt;code&gt;55319e1&lt;/code&gt;&lt;/a&gt; feat: fix &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; bug with semicolon-first style (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15951&quot;&gt;#15951&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6d79209821241c8e03c183b5844a024da0efe8a&quot;&gt;&lt;code&gt;f6d7920&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;allowNamedExports&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;no-use-before-define&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15953&quot;&gt;#15953&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54c09530c778eb4076d89777165d59db96c9acb5&quot;&gt;&lt;code&gt;54c0953&lt;/code&gt;&lt;/a&gt; fix: cleanup typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15939&quot;&gt;#15939&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/845a7af90ce03b383c8f09654ac049fc161dbb9f&quot;&gt;&lt;code&gt;845a7af&lt;/code&gt;&lt;/a&gt; fix: typo ocatal -&amp;gt; octal (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15940&quot;&gt;#15940&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9150186bcc0f2732a69ab0ebd83a9b2fb2e6552&quot;&gt;&lt;code&gt;b915018&lt;/code&gt;&lt;/a&gt; docs: Update website UI to latest (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15944&quot;&gt;#15944&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f0bb6099668f54ae6f444126b90dbb1146248146&quot;&gt;&lt;code&gt;f0bb609&lt;/code&gt;&lt;/a&gt; docs: Update Exponentiation operator MDN link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15960&quot;&gt;#15960&lt;/a&gt;) (Pranjal Jain)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/baa01530469ec233fb60380a0960c1550f9d9a45&quot;&gt;&lt;code&gt;baa0153&lt;/code&gt;&lt;/a&gt; docs: Use correct past tense “left” instead of “leaved” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15950&quot;&gt;#15950&lt;/a&gt;) (Frederik Braun)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1351a9b875aa32a8961a68457dde03ede9ef7c78&quot;&gt;&lt;code&gt;1351a9b&lt;/code&gt;&lt;/a&gt; docs: Add Resources section to rule pages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15901&quot;&gt;#15901&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68cf0fb7f645da5d992a5e749fc6c1311d30e75a&quot;&gt;&lt;code&gt;68cf0fb&lt;/code&gt;&lt;/a&gt; docs: cleanup typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15936&quot;&gt;#15936&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13b62aeb710a68e5d838a4d3847c487af1ba9520&quot;&gt;&lt;code&gt;13b62ae&lt;/code&gt;&lt;/a&gt; docs: use-dart-sass instead of node-sass (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15912&quot;&gt;#15912&lt;/a&gt;) (Deepshika S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c81c5d6ef1ba5808cca95ab965a162802af9b7cc&quot;&gt;&lt;code&gt;c81c5d6&lt;/code&gt;&lt;/a&gt; docs: add social media links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15920&quot;&gt;#15920&lt;/a&gt;) (Deepshika S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d6a50b41f2fe444fd222463adad48473eaf9b7d&quot;&gt;&lt;code&gt;0d6a50b&lt;/code&gt;&lt;/a&gt; docs: fix openjs link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15917&quot;&gt;#15917&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54910f5a3bf6615f8ac03d33fd26fc1fa6dea21f&quot;&gt;&lt;code&gt;54910f5&lt;/code&gt;&lt;/a&gt; docs: display version in mobile view (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15909&quot;&gt;#15909&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da694b9d7cb0247541bcabbf943d1289e0e30167&quot;&gt;&lt;code&gt;da694b9&lt;/code&gt;&lt;/a&gt; chore: avoid theme flashes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15927&quot;&gt;#15927&lt;/a&gt;) (Strek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f836743e95cb8ad3bdd4e88687dbe2f16bfade62&quot;&gt;&lt;code&gt;f836743&lt;/code&gt;&lt;/a&gt; chore: Use build hook for docs deploy (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15945&quot;&gt;#15945&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce035e5fac632ba8d4f1860f92465f22d6b44d42&quot;&gt;&lt;code&gt;ce035e5&lt;/code&gt;&lt;/a&gt; test: cleanup typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15937&quot;&gt;#15937&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10249ad1a961463b6b347be71c074951ab8e2652&quot;&gt;&lt;code&gt;10249ad&lt;/code&gt;&lt;/a&gt; chore: use addEventListener instead of addListener (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15923&quot;&gt;#15923&lt;/a&gt;) (Amaresh  S M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5f5c1fb1083573ea511d0dae7913651db0dca772&quot;&gt;&lt;code&gt;5f5c1fb&lt;/code&gt;&lt;/a&gt; chore: lint eleventy config file (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15904&quot;&gt;#15904&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8513d37c725509c9e9ec1dbbc431f20d32632cf3&quot;&gt;&lt;code&gt;8513d37&lt;/code&gt;&lt;/a&gt; chore: update Rule typedefs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15915&quot;&gt;#15915&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/55534f1a7040fad94bb5726759fbb9acb60d1c24&quot;&gt;&lt;code&gt;55534f1&lt;/code&gt;&lt;/a&gt; test: ensure &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; works with NodeJS imports (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15907&quot;&gt;#15907&lt;/a&gt;) (Nick Mazuk)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.16.0 released</title>
    <link href="https://eslint.org/blog/2022/05/eslint-v8.16.0-released/"/>
    <updated>2022-05-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/05/eslint-v8.16.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;no-misleading-character-class&lt;/a&gt; rule now provides &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions&quot;&gt;suggestions&lt;/a&gt; for some of the problems reported by this rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cab0c2287e12561d869dfcfcd1c4e14c9d6d70d5&quot;&gt;&lt;code&gt;cab0c22&lt;/code&gt;&lt;/a&gt; feat: add Unicode flag suggestion in &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;no-misleading-character-class&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15867&quot;&gt;#15867&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38ae9564a41e1d38adad55976565d85c5c981e1d&quot;&gt;&lt;code&gt;38ae956&lt;/code&gt;&lt;/a&gt; feat: check Unicode code point escapes in &lt;a href=&quot;https://eslint.org/docs/rules/no-control-regex&quot;&gt;no-control-regex&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15862&quot;&gt;#15862&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee69cd30b3551b3adebfd959a44a9a149221946a&quot;&gt;&lt;code&gt;ee69cd3&lt;/code&gt;&lt;/a&gt; feat: Update global variables (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15871&quot;&gt;#15871&lt;/a&gt;) (Sébastien Règne)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3f09aab709980ca974b721de474be2dd183409a2&quot;&gt;&lt;code&gt;3f09aab&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/function-paren-newline&quot;&gt;function-paren-newline&lt;/a&gt; crash on “new new Foo();” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15850&quot;&gt;#15850&lt;/a&gt;) (coderaiser)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/050d5f4e0456ae9a9d769f4306bc0d60058b0898&quot;&gt;&lt;code&gt;050d5f4&lt;/code&gt;&lt;/a&gt; docs: Static further reading links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15890&quot;&gt;#15890&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/36287c00d56596fbb2672cfe3f9b9dd24b2926da&quot;&gt;&lt;code&gt;36287c0&lt;/code&gt;&lt;/a&gt; docs: fix absolute paths in related rules shortcode to work from /docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15892&quot;&gt;#15892&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90b69901efd265fd11425540928793f1387095cc&quot;&gt;&lt;code&gt;90b6990&lt;/code&gt;&lt;/a&gt; docs: fix absolute links in rule macro to work from /docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15891&quot;&gt;#15891&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f437249a3bedb47155d33ac753b821ae31b814fa&quot;&gt;&lt;code&gt;f437249&lt;/code&gt;&lt;/a&gt; docs: Adjust docs site path prefix (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15889&quot;&gt;#15889&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e16025e8fbffa0e1d0c977cb4b6eae30a502d9b&quot;&gt;&lt;code&gt;6e16025&lt;/code&gt;&lt;/a&gt; docs: update ‘Related Rules’ and ‘Further Reading’ in remaining rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15884&quot;&gt;#15884&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d39f698a22e2995bbfcf90b6dafd196a173092a&quot;&gt;&lt;code&gt;1d39f69&lt;/code&gt;&lt;/a&gt; docs: remove confusing examples for &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-operators&quot;&gt;no-mixed-operators&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15875&quot;&gt;#15875&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3071d76772c002bd7b03053be5be54da52c01242&quot;&gt;&lt;code&gt;3071d76&lt;/code&gt;&lt;/a&gt; docs: Fix some grammar issues (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15837&quot;&gt;#15837&lt;/a&gt;) (byodian)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1768d0de58e10046ed3e54f0fa52be48ba41f12b&quot;&gt;&lt;code&gt;1768d0d&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@1.3.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15903&quot;&gt;#15903&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c686e4c4a04525118f5585fd76bdba59dddf3a97&quot;&gt;&lt;code&gt;c686e4c&lt;/code&gt;&lt;/a&gt; chore: Add deploy workflow for docs site (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15894&quot;&gt;#15894&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c7894cd433319e09b10a80b260a5398dac0d5dab&quot;&gt;&lt;code&gt;c7894cd&lt;/code&gt;&lt;/a&gt; chore: enable some rules from eslint-plugin-unicorn internally (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15878&quot;&gt;#15878&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea65cb5435162ad29559d175e68f5b6d97e6cdcc&quot;&gt;&lt;code&gt;ea65cb5&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-plugin-eslint-plugin@^4.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15882&quot;&gt;#15882&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc29c696a08430fcbf202482306b8c3dbccc0257&quot;&gt;&lt;code&gt;cc29c69&lt;/code&gt;&lt;/a&gt; chore: Upgrade official GitHub actions to latest versions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15880&quot;&gt;#15880&lt;/a&gt;) (Darius Dzien)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5891c7533f500110129fdea7b9b63c8a409da0bd&quot;&gt;&lt;code&gt;5891c75&lt;/code&gt;&lt;/a&gt; chore: Refactor rule docs format (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15869&quot;&gt;#15869&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.15.0 released</title>
    <link href="https://eslint.org/blog/2022/05/eslint-v8.15.0-released/"/>
    <updated>2022-05-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/05/eslint-v8.15.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle&quot;&gt;no-underscore-dangle&lt;/a&gt; rule has a new option &lt;code&gt;enforceInClassFields&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab37d3ba302856007beb833c34b56658a34bbb5d&quot;&gt;&lt;code&gt;ab37d3b&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;enforceInClassFields&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle&quot;&gt;no-underscore-dangle&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15818&quot;&gt;#15818&lt;/a&gt;) (Roberto Cestari)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8bf9440ac47907ffd27aba095428908e7ddeae8a&quot;&gt;&lt;code&gt;8bf9440&lt;/code&gt;&lt;/a&gt; fix: “use strict” should not trigger strict mode in ES3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15846&quot;&gt;#15846&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28116ccce4b99da3d5aa9b8994dd3652df7b1cab&quot;&gt;&lt;code&gt;28116cc&lt;/code&gt;&lt;/a&gt; docs: update AST node names link in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;no-restricted-syntax&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15843&quot;&gt;#15843&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/272965feda8adfbf5bfa0e01b37df27ce70fc9fd&quot;&gt;&lt;code&gt;272965f&lt;/code&gt;&lt;/a&gt; docs: fix h1 heading on formatters page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15834&quot;&gt;#15834&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7981669fffe33deaf4fbe295f660edc8ccad4cd&quot;&gt;&lt;code&gt;a798166&lt;/code&gt;&lt;/a&gt; docs: update example for running individual rule tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15833&quot;&gt;#15833&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57e732be4e349470fad3e3cc44d96bf0746a598b&quot;&gt;&lt;code&gt;57e732b&lt;/code&gt;&lt;/a&gt; docs: mark &lt;code&gt;SourceCode#getJSDocComment&lt;/code&gt; deprecated in working-with-rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15829&quot;&gt;#15829&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a90abf59e31247c03a24ca789cd6157504f63ed&quot;&gt;&lt;code&gt;9a90abf&lt;/code&gt;&lt;/a&gt; docs: update docs directory in working-with-rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15830&quot;&gt;#15830&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/810addac9b958c03d69f5f8f21d47ff7fb4c5db6&quot;&gt;&lt;code&gt;810adda&lt;/code&gt;&lt;/a&gt; docs: add more examples for &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;prefer-object-spread&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15831&quot;&gt;#15831&lt;/a&gt;) (coderaiser)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/06b1edb68f251558601bf68d47e6bbde693089c9&quot;&gt;&lt;code&gt;06b1edb&lt;/code&gt;&lt;/a&gt; docs: clarify &lt;a href=&quot;https://eslint.org/docs/rules/no-control-regex&quot;&gt;no-control-regex&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15808&quot;&gt;#15808&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ecd42f36462331a0d697e74323a4d24f0cf02fc&quot;&gt;&lt;code&gt;9ecd42f&lt;/code&gt;&lt;/a&gt; docs: Fixed typo in code comment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15812&quot;&gt;#15812&lt;/a&gt;) (Addison G)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de992b7016e3d91092de7748f0375943ad2c77f0&quot;&gt;&lt;code&gt;de992b7&lt;/code&gt;&lt;/a&gt; docs: remove links to 2fa document (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15804&quot;&gt;#15804&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52226593974fc7fcb60f1be73b165863b3d1a7fb&quot;&gt;&lt;code&gt;5222659&lt;/code&gt;&lt;/a&gt; docs: fix ‘Related Rules’ heading in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-binary-expression&quot;&gt;no-constant-binary-expression&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15799&quot;&gt;#15799&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e70ae8116256e5b69c6eac1ed71c0fa33a8e6d7a&quot;&gt;&lt;code&gt;e70ae81&lt;/code&gt;&lt;/a&gt; docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ba6a926eedcfe725900ed95cf029cff02d0355a&quot;&gt;&lt;code&gt;1ba6a92&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@1.2.3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15847&quot;&gt;#15847&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8167aa7d43d00f1a0e8400f73c0dd66798fd4c56&quot;&gt;&lt;code&gt;8167aa7&lt;/code&gt;&lt;/a&gt; chore: bump version of minimatch due to security issue PRISMA-2022-0039 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15774&quot;&gt;#15774&lt;/a&gt;) (Jan Opravil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8995a40087f3a1e4e87c239951f91ddaac73571&quot;&gt;&lt;code&gt;b8995a4&lt;/code&gt;&lt;/a&gt; chore: Implement docs site (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15815&quot;&gt;#15815&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6494e3e8916f0a07226bdd8c8f6b2c5f0884bf6b&quot;&gt;&lt;code&gt;6494e3e&lt;/code&gt;&lt;/a&gt; chore: update link in &lt;code&gt;codeql-analysis.yml&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15817&quot;&gt;#15817&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/36503ec8b6fca292be8e584792fc2ad056df4d2f&quot;&gt;&lt;code&gt;36503ec&lt;/code&gt;&lt;/a&gt; chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-binary-expression&quot;&gt;no-constant-binary-expression&lt;/a&gt; in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15807&quot;&gt;#15807&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.14.0 released</title>
    <link href="https://eslint.org/blog/2022/04/eslint-v8.14.0-released/"/>
    <updated>2022-04-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/04/eslint-v8.14.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;One new rule has been added: &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-binary-expression&quot;&gt;no-constant-binary-expression&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab6363dffb9dfd9c6a9abb5292fc712745fe7a64&quot;&gt;&lt;code&gt;ab6363d&lt;/code&gt;&lt;/a&gt; feat: Add rule &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-binary-expression&quot;&gt;no-constant-binary-expression&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15296&quot;&gt;#15296&lt;/a&gt;) (Jordan Eldredge)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/35fa1dd8932ef3e55c37ec0e4b73b5d88f187e69&quot;&gt;&lt;code&gt;35fa1dd&lt;/code&gt;&lt;/a&gt; fix: allow project paths to have URL-encoded characters (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15795&quot;&gt;#15795&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/413f1d55f0ad05b6fe75bdde6df423253806797d&quot;&gt;&lt;code&gt;413f1d5&lt;/code&gt;&lt;/a&gt; fix: update &lt;code&gt;astUtils.isDirectiveComment&lt;/code&gt; with &lt;code&gt;globals&lt;/code&gt; and &lt;code&gt;exported&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15775&quot;&gt;#15775&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2407e81caf2d50325d9aa09bae70d38615ddf2c&quot;&gt;&lt;code&gt;c2407e8&lt;/code&gt;&lt;/a&gt; build: add node v18 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15791&quot;&gt;#15791&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/735458cc96d4ecdb4ed97448b63ed4a579890b13&quot;&gt;&lt;code&gt;735458c&lt;/code&gt;&lt;/a&gt; chore: add static frontmatter to &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-binary-expression&quot;&gt;no-constant-binary-expression&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15798&quot;&gt;#15798&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db28f2c9ea6b654f615daf2f7e6f1a2034b85062&quot;&gt;&lt;code&gt;db28f2c&lt;/code&gt;&lt;/a&gt; chore: Add static frontmatter to docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15782&quot;&gt;#15782&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3bca59e30de73fb82d4def262ae1df72089df80d&quot;&gt;&lt;code&gt;3bca59e&lt;/code&gt;&lt;/a&gt; chore: markdownlint autofix on commit (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15783&quot;&gt;#15783&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.13.0 released</title>
    <link href="https://eslint.org/blog/2022/04/eslint-v8.13.0-released/"/>
    <updated>2022-04-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/04/eslint-v8.13.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/274acbd56537f6b8199da1ac9e7bced74ae81b56&quot;&gt;&lt;code&gt;274acbd&lt;/code&gt;&lt;/a&gt; feat: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-eval&quot;&gt;no-eval&lt;/a&gt; logic for &lt;code&gt;this&lt;/code&gt; in arrow functions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15755&quot;&gt;#15755&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97b57ae3ebae9150456f5516c64b6d2ba75b4038&quot;&gt;&lt;code&gt;97b57ae&lt;/code&gt;&lt;/a&gt; fix: invalid operator in &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;operator-assignment&lt;/a&gt; messages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15759&quot;&gt;#15759&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c32482e4fd4ad09f3d5fd960dc1fb7c1b4e56f23&quot;&gt;&lt;code&gt;c32482e&lt;/code&gt;&lt;/a&gt; docs: Typo in &lt;a href=&quot;https://eslint.org/docs/rules/space-infix-ops&quot;&gt;space-infix-ops&lt;/a&gt; docs  (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15754&quot;&gt;#15754&lt;/a&gt;) (kmin-jeong)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2c2d350425268efa4b78ee6e0a2df8860e0efad&quot;&gt;&lt;code&gt;f2c2d35&lt;/code&gt;&lt;/a&gt; docs: disambiguate types &lt;code&gt;FormatterFunction&lt;/code&gt; and &lt;code&gt;LoadedFormatter&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15727&quot;&gt;#15727&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb4c0d530a231a8a14ed70ad61c06e284bbaaef0&quot;&gt;&lt;code&gt;bb4c0d5&lt;/code&gt;&lt;/a&gt; chore: Refactor docs to work with &lt;a href=&quot;http://docs.eslint.org/&quot;&gt;docs.eslint.org&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15744&quot;&gt;#15744&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d36f12f71b3e4f9e9552f1054d7a75be4dc03671&quot;&gt;&lt;code&gt;d36f12f&lt;/code&gt;&lt;/a&gt; chore: remove &lt;code&gt;lib/init&lt;/code&gt; from eslint config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15748&quot;&gt;#15748&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a59a4e6e9217b3cc503c0a702b9e3b02b20b980d&quot;&gt;&lt;code&gt;a59a4e6&lt;/code&gt;&lt;/a&gt; chore: replace &lt;code&gt;trimLeft&lt;/code&gt;/&lt;code&gt;trimRight&lt;/code&gt; with &lt;code&gt;trimStart&lt;/code&gt;/&lt;code&gt;trimEnd&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15750&quot;&gt;#15750&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.12.0 released</title>
    <link href="https://eslint.org/blog/2022/03/eslint-v8.12.0-released/"/>
    <updated>2022-03-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/03/eslint-v8.12.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/685a67a62bdea19ca9ce12008a034b8d31162422&quot;&gt;&lt;code&gt;685a67a&lt;/code&gt;&lt;/a&gt; feat: fix logic for top-level &lt;code&gt;this&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-this&quot;&gt;no-invalid-this&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/rules/no-eval&quot;&gt;no-eval&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15712&quot;&gt;#15712&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/18f5e05bce10503186989d81ca484abb185a2c9d&quot;&gt;&lt;code&gt;18f5e05&lt;/code&gt;&lt;/a&gt; chore: &lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;padding-line-between-statements&lt;/a&gt; remove useless &lt;code&gt;additionalItems&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15706&quot;&gt;#15706&lt;/a&gt;) (Martin Sadovy)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.11.0 released</title>
    <link href="https://eslint.org/blog/2022/03/eslint-v8.11.0-released/"/>
    <updated>2022-03-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/03/eslint-v8.11.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; rule has a new &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars#destructuredarrayignorepattern&quot;&gt;&lt;code&gt;destructuredArrayIgnorePattern&lt;/code&gt;&lt;/a&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/800bd258e4484de24323809ebbf13fc72fcbabac&quot;&gt;&lt;code&gt;800bd25&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;destructuredArrayIgnorePattern&lt;/code&gt; option in &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;&lt;code&gt;no-unused-vars&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15649&quot;&gt;#15649&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8933fe7afcc7cdd99cc0efccc08e8fe3a5e2996f&quot;&gt;&lt;code&gt;8933fe7&lt;/code&gt;&lt;/a&gt; feat: Catch &lt;code&gt;undefined&lt;/code&gt; and &lt;code&gt;Boolean()&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15613&quot;&gt;#15613&lt;/a&gt;) (Jordan Eldredge)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f90fd9d779a5b28dfd15ca3f993e6b3cd09e71e8&quot;&gt;&lt;code&gt;f90fd9d&lt;/code&gt;&lt;/a&gt; feat: Add ESLint favicon to the HTML report document (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15671&quot;&gt;#15671&lt;/a&gt;) (Mahdi Hosseinzadeh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57b8a57be75ed2379fe39c93168175090dfe4cdd&quot;&gt;&lt;code&gt;57b8a57&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/valid-typeof&quot;&gt;&lt;code&gt;valid-typeof&lt;/code&gt;&lt;/a&gt; always ban &lt;code&gt;undefined&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15635&quot;&gt;#15635&lt;/a&gt;) (Zzzen)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68149221637faa8e4f2718773e751126b7ae8ac9&quot;&gt;&lt;code&gt;6814922&lt;/code&gt;&lt;/a&gt; fix: escaping for square brackets in ignore patterns (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15666&quot;&gt;#15666&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c178ce7044b5c19db2f4aabfdbe58003db5062fd&quot;&gt;&lt;code&gt;c178ce7&lt;/code&gt;&lt;/a&gt; fix: extend the autofix range in &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; to ensure the last element (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15669&quot;&gt;#15669&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c481cecacc728618832b4044374e445d332b4381&quot;&gt;&lt;code&gt;c481cec&lt;/code&gt;&lt;/a&gt; docs: add fast-eslint-8 to atom integrations (userguide) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15695&quot;&gt;#15695&lt;/a&gt;) (db developer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d2255db24526de604b4a34e90c870158c4ea277e&quot;&gt;&lt;code&gt;d2255db&lt;/code&gt;&lt;/a&gt; docs: Add clarification about &lt;code&gt;eslint-enable&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15680&quot;&gt;#15680&lt;/a&gt;) (dosisod)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b9433c90c842d8ec06f633df7fbba6ac6d5036b&quot;&gt;&lt;code&gt;8b9433c&lt;/code&gt;&lt;/a&gt; docs: add object pattern to first section of &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;computed-property-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15679&quot;&gt;#15679&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de800c3c0b8e3f85921b40eaa97134fef12effa2&quot;&gt;&lt;code&gt;de800c3&lt;/code&gt;&lt;/a&gt; docs: link to minimatch docs added.  (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15688&quot;&gt;#15688&lt;/a&gt;) (Gaurav Tewari)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f675b1f7f6c0591abe36c20410d226bd9e1faa6&quot;&gt;&lt;code&gt;8f675b1&lt;/code&gt;&lt;/a&gt; docs: &lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;sort-imports&lt;/a&gt; add single named import example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15675&quot;&gt;#15675&lt;/a&gt;) (Arye Eidelman)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/385c9ad685b24b1821ec4085596b3aad299fb751&quot;&gt;&lt;code&gt;385c9ad&lt;/code&gt;&lt;/a&gt; chore: rm trailing space in docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15689&quot;&gt;#15689&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.10.0 released</title>
    <link href="https://eslint.org/blog/2022/02/eslint-v8.10.0-released/"/>
    <updated>2022-02-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/02/eslint-v8.10.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-shadow&quot;&gt;no-shadow&lt;/a&gt; rule has a new &lt;code&gt;ignoreOnInitialization&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-confusing-arrow&quot;&gt;no-confusing-arrow&lt;/a&gt; rule has a new &lt;code&gt;onlyOneSimpleParam&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e2c325324479df1b3f868cf00a529b67d2c3d82&quot;&gt;&lt;code&gt;6e2c325&lt;/code&gt;&lt;/a&gt; feat: Add &lt;code&gt;ignoreOnInitialization&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-shadow&quot;&gt;no-shadow&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14963&quot;&gt;#14963&lt;/a&gt;) (Soufiane Boutahlil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/115cae54125b9ef509af90620f51d4a692b51ab7&quot;&gt;&lt;code&gt;115cae5&lt;/code&gt;&lt;/a&gt; feat: &lt;code&gt;--debug&lt;/code&gt; prints time it takes to parse a file (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15609&quot;&gt;#15609&lt;/a&gt;) (Bartek Iwańczuk)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/345e70d9d6490fb12b18953f56f3cea28fd61d83&quot;&gt;&lt;code&gt;345e70d&lt;/code&gt;&lt;/a&gt; feat: Add &lt;code&gt;onlyOneSimpleParam&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/no-confusing-arrow&quot;&gt;no-confusing-arrow&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15566&quot;&gt;#15566&lt;/a&gt;) (Gautam Arora)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cdc58025d9a8b522f516c3665d225b69a76c4ee1&quot;&gt;&lt;code&gt;cdc5802&lt;/code&gt;&lt;/a&gt; fix: Avoid &lt;code&gt;__dirname&lt;/code&gt; for built-in configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15616&quot;&gt;#15616&lt;/a&gt;) (DoZerg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee7c5d14a2cb5ce352d1851cec858b942572d2cc&quot;&gt;&lt;code&gt;ee7c5d1&lt;/code&gt;&lt;/a&gt; fix: false positive in &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;&lt;code&gt;camelcase&lt;/code&gt;&lt;/a&gt; with combined properties (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15581&quot;&gt;#15581&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1005bd525a08208fee124149a6ad4cf9da20d7d5&quot;&gt;&lt;code&gt;1005bd5&lt;/code&gt;&lt;/a&gt; docs: update CLA information (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15630&quot;&gt;#15630&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d65c3bc1e514ed07406c502437a1642913b27ed&quot;&gt;&lt;code&gt;5d65c3b&lt;/code&gt;&lt;/a&gt; docs: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;&lt;code&gt;no-irregular-whitespace&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15634&quot;&gt;#15634&lt;/a&gt;) (Ryota Sekiya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b93af98b3c417225a027cabc964c38e779adb945&quot;&gt;&lt;code&gt;b93af98&lt;/code&gt;&lt;/a&gt; docs: add links between rules about whitespace around block curly braces (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15625&quot;&gt;#15625&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebc0460c411ea608ba5bab05829a1fd122fe21e8&quot;&gt;&lt;code&gt;ebc0460&lt;/code&gt;&lt;/a&gt; docs: update babel links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15624&quot;&gt;#15624&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7cec74e842b6e51da1b00a9e9b2c9da97dd17362&quot;&gt;&lt;code&gt;7cec74e&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@1.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15648&quot;&gt;#15648&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/11c8580de0dcedd5577cffe2b23d23a322cc97df&quot;&gt;&lt;code&gt;11c8580&lt;/code&gt;&lt;/a&gt; chore: read &lt;code&gt;ESLINT_MOCHA_TIMEOUT&lt;/code&gt; env var in Makefile.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15626&quot;&gt;#15626&lt;/a&gt;) (Piggy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfaa5488bbc794c0d160fb55bd277a2c618953b2&quot;&gt;&lt;code&gt;bfaa548&lt;/code&gt;&lt;/a&gt; test: add integration tests with built-in configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15612&quot;&gt;#15612&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/39a2fb3f448a7096bfb2fc172fef6cc3f6a7ed3b&quot;&gt;&lt;code&gt;39a2fb3&lt;/code&gt;&lt;/a&gt; perf: fix lazy loading of core rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15606&quot;&gt;#15606&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fc919626ef6a00e35bb6b559b60a1e89cf6ca1a&quot;&gt;&lt;code&gt;3fc9196&lt;/code&gt;&lt;/a&gt; chore: include &lt;code&gt;tests/conf&lt;/code&gt; in test runs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15610&quot;&gt;#15610&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Paying contributors, sponsoring projects, and more: ESLint&#39;s 2022 spending plan</title>
    <link href="https://eslint.org/blog/2022/02/paying-contributors-sponsoring-projects/"/>
    <updated>2022-02-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/02/paying-contributors-sponsoring-projects/</id>
    <content type="html">&lt;p&gt;In our &lt;a href=&quot;https://eslint.org/blog/2020/10/year-paying-contributors-review&quot;&gt;last update on paying contributors&lt;/a&gt;, we noted some of the successes and challenges we had as a team. At that time, we were still trying to figure out ESLint’s model for sustainability. Having money to spend is one thing but knowing how to best use that money is another. Because we didn’t have enough money to pay anyone full time, we tried one maintainer at part time, and that didn’t work. After that experiment, we decided to regroup and reevaluate, ultimately deciding to use a per-hour payment system for team members.&lt;/p&gt;
&lt;p&gt;Once we settled into the per-hour system, that also gave us information on how many hours each month people were spending on the project. That, in turn, showed us how much money we actually needed each month to continue maintaining ESLint. As a result of that information, we have arrived at a system that we are very pleased with.&lt;/p&gt;
&lt;h2 id=&quot;the-guiding-principle&quot; tabindex=&quot;-1&quot;&gt;The guiding principle&lt;/h2&gt;
&lt;p&gt;Before explaining how ESLint is using the money it collects now, it helps to take a step back to understand the guiding principles upon which this approach is based. Each project has different goals for why they are raising money and how it should be spent. For many projects, the goal is to allow the maintainer(s) to work full time on the project. That is a worthy goal provided that the maintainers actually want to work full time on the project. This is a narrow approach to distributing funds in that most or all of the money goes to one or a few people.&lt;/p&gt;
&lt;p&gt;On ESLint, we discovered that we didn’t have any team members interested in working on the project full time. So we thought: what if we went in the complete opposite direction? Given that we know people will only work part time, and probably just in their spare time, how could we distribute the funds as widely as possible for the maximum positive impact?&lt;/p&gt;
&lt;p&gt;When we asked ourselves this question, we realized that we were circling around a common theme: anything that benefits the ESLint ecosystem is worth supporting financially. The first and most obvious thing that benefits the ecosystem is having people maintaining ESLint, so we clearly need to make sure people are paid fairly for spending their time working on the project. But what else benefits the ecosystem? Well, ESLint is built on top of a bunch of dependencies, and we’d like to support those projects, so what if we donated some of our funds to those projects? There’s also a wide range of plugins, parsers, and extensions that help fuel use of ESLint, so what if we started sponsoring some of these projects as well? And we also get a bunch of contributions from outside contributors…what if we paid them?&lt;/p&gt;
&lt;p&gt;So by aligning around the idea that anything that benefits the ESLint ecosystem is worth funding, we were able to find ways to spread the money we collected more widely, and we’re excited to share the results.&lt;/p&gt;
&lt;h2 id=&quot;how-we-are-spending-our-money-now&quot; tabindex=&quot;-1&quot;&gt;How we are spending our money now&lt;/h2&gt;
&lt;p&gt;In general, we regularly spend money on the following things.&lt;/p&gt;
&lt;h3 id=&quot;paying-team-members-per-hour&quot; tabindex=&quot;-1&quot;&gt;Paying team members per hour&lt;/h3&gt;
&lt;p&gt;Each month, all ESLint team members can submit an invoice for the number of hours they worked on the project. Anything they do on the project counts, whether that is writing code, writing documentation, triaging issues, participating in our Discord server, attending meetings on behalf of ESLint, contributing to our upstream dependencies, and so on. All contributions to an open source project are valuable, and we feel like compensating team members for any time they spend on the project is the right thing to do.&lt;/p&gt;
&lt;p&gt;Right now, the per-hour rate for Technical Steering Committee (TSC) members and Reviewers is $80/hour; the per-hour rate for Committers is $50/hour.&lt;/p&gt;
&lt;h3 id=&quot;the-contributor-pool&quot; tabindex=&quot;-1&quot;&gt;The contributor pool&lt;/h3&gt;
&lt;p&gt;One of the things we struggled with was how to fairly pay outside contributors for working on ESLint. We didn’t think a standard per-hour rate made much sense because 1) people might contribute without knowing to track their hours ahead of time and 2) trusting people you don’t know to accurately report their hours spend is a system that is too easy to exploit. Still, we felt like it wasn’t fair for us to pay for team member contributions but not for outside contributions, and so we created the contributor pool.&lt;/p&gt;
&lt;p&gt;Each month, we set aside $1,000 specifically to give to outside contributors for any contributions to ESLint. The TSC reviews outside contributions at the end of each month and awards at least $100 to every outside contributor who has made a non-trivial contribution to ESLint. Once again, these contributions are not limited to coding, but can be anything that positively impacts the project. The contributors don’t need to apply ahead of time or ask for permission; if you make a significant contribution, you’ll get an email from the TSC letting you know how to collect your payment.&lt;/p&gt;
&lt;p&gt;In 2021, we awarded over $6,000 to outside contributors, and we look forward to awarding more in 2022. The bottom line here: if you make any non-trivial contribution to ESLint, you will get paid for it.&lt;/p&gt;
&lt;h3 id=&quot;supporting-our-dependencies&quot; tabindex=&quot;-1&quot;&gt;Supporting our dependencies&lt;/h3&gt;
&lt;p&gt;As we &lt;a href=&quot;https://eslint.org/blog/2020/09/supporting-eslint-dependencies&quot;&gt;announced in 2020&lt;/a&gt;, we actively seek out and donate to our dependencies. In general, any project we directly depend on that has an Open Collective account will be considered to receive a donation from ESLint. We are currently supporting five of our dependencies with monthly donations of $150:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://npmjs.com/package/ajv&quot;&gt;Ajv&lt;/a&gt; is a JSON schema validator that ESLint uses to validate configuration.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.11ty.dev/&quot;&gt;Eleventy&lt;/a&gt; is a Node.js-based static site generator that we use to create &lt;a href=&quot;http://eslint.org/&quot;&gt;eslint.org&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://sindresorhus.com/&quot;&gt;Sindre Sorhus&lt;/a&gt; is a prolific open source developer, and ESLint uses several of his modules, including &lt;a href=&quot;https://npmjs.com/package/chalk&quot;&gt;&lt;code&gt;chalk&lt;/code&gt;&lt;/a&gt;, &lt;a href=&quot;https://npmjs.com/package/globals&quot;&gt;&lt;code&gt;globals&lt;/code&gt;&lt;/a&gt;, &lt;a href=&quot;https://npmjs.com/package/import-fresh&quot;&gt;&lt;code&gt;import-fresh&lt;/code&gt;&lt;/a&gt;, &lt;a href=&quot;https://npmjs.com/package/strip-ansi&quot;&gt;&lt;code&gt;strip-ansi&lt;/code&gt;&lt;/a&gt;, and &lt;a href=&quot;https://npmjs.com/package/strip-json-comments&quot;&gt;&lt;code&gt;strip-json-comments&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://npmjs.com/package/debug&quot;&gt;debug&lt;/a&gt; is a small tool ESLint uses to output debugging messages when you use the &lt;code&gt;--debug&lt;/code&gt; flag.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://npmjs.com/package/lint-staged&quot;&gt;lint-staged&lt;/a&gt; is a simple precommit hook manager that makes it easy to setup linting in your development process.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We think it’s important for open source projects that receive a lot of donations to take care of their dependencies. After all, if your project couldn’t exist without those dependencies, then they deserve your support.&lt;/p&gt;
&lt;p&gt;You can always check to see which projects ESLint is supporting on our &lt;a href=&quot;https://opencollective.com/eslint#category-CONTRIBUTIONS&quot;&gt;Open Collective page&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;supporting-the-community&quot; tabindex=&quot;-1&quot;&gt;Supporting the community&lt;/h3&gt;
&lt;p&gt;Once we started supporting our upstream dependencies, we thought, what about the downstream dependencies? There are a lot of projects related to ESLint that enrich the ESLint ecosystem, whether that be a different set of rules, a custom parser, or anything that makes ESLint better to use. We are currently donating $150 per month to these projects:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/typescript-eslint&quot;&gt;typescript-eslint&lt;/a&gt; is the plugin that makes ESLint work with TypeScript.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://npmjs.com/package/eslint-plugin-import&quot;&gt;eslint-plugin-import&lt;/a&gt; is a plugin to help you manage your module imports.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://npmjs.com/package/eslint-plugin-jsx-a11y&quot;&gt;eslint-plugin-jsx-a11y&lt;/a&gt; is a plugin to help you ensure your JSX code is accessible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Going forward, we are looking to continue supporting community projects like these. The strength of ESLint is in the ecosystem built by you, and we want to support as much of that ecosystem as possible.&lt;/p&gt;
&lt;h3 id=&quot;big-projects&quot; tabindex=&quot;-1&quot;&gt;Big projects&lt;/h3&gt;
&lt;p&gt;The last way we decided to spend money is on what we playfully called “big projects.” These are projects that take a lot of time and effort, and that the team doesn’t have the time, interest, or expertise to accomplish on our own. Every project has a backlog of tasks that seem too big to ever accomplish, and we realized that we could start making our way through that list by hiring professionals to do the work.&lt;/p&gt;
&lt;p&gt;The first of our big projects is an ambitious project to redesign the ESLint website. We had wanted to redesign our website for several years, and tried at least three separate times to do it in the spirit of open source, with volunteers and designing by consensus. Each of those times the efforts failed, and so we decided it was time to hire some folks to help us out.&lt;/p&gt;
&lt;p&gt;The entire scope of the project is fairly large and includes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A brand design including a logo refresh&lt;/li&gt;
&lt;li&gt;A new website design that explains more about what ESLint is and how people use it&lt;/li&gt;
&lt;li&gt;Separating the documentation into its own website that is easier to navigate&lt;/li&gt;
&lt;li&gt;Separating the demo into its own single-page application to make it easier to maintain and deploy&lt;/li&gt;
&lt;li&gt;Rewriting and updating our documentation (from scratch)&lt;/li&gt;
&lt;li&gt;Translating our documentation into different languages&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So far, we have finished step 1 and are getting close to finishing step 2. To do this, we hired:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://jellypepper.com/&quot;&gt;JellyPepper&lt;/a&gt; for the brand refresh and visual design of the website.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://gavinbarnett.com/&quot;&gt;Gavin Barnett&lt;/a&gt; to design our new blog images.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.sarasoueidan.com/&quot;&gt;Sara Soueidan&lt;/a&gt; to implement the new website, documentation site, and demo skeleton.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cassie.codes/&quot;&gt;Cassie Evans&lt;/a&gt; to implement a custom homepage animation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The total cost of this effort has come to about $46,000 and we are thrilled with how everything has gone. This is a perfect example of where hiring professionals to do the work allowed us to move faster and (soon!) improve the website experience for all ESLint users.&lt;/p&gt;
&lt;h2 id=&quot;wrapping-up&quot; tabindex=&quot;-1&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;It took us a while to figure out the right way to use our sponsorship money, but now that we have, we think we’ve found the best way to sustain ESLint for the future. Making sure that everyone gets paid for non-trivial contributions was a goal we had from the start and we are happy that we finally figured out a way to do that.&lt;/p&gt;
&lt;p&gt;Additionally, moving to a model where we share some of our funds with both our dependencies and other ecosystem projects feels more in the spirit of open source. We are an interconnected ecosystem where projects mix and reuse other projects to create even more interesting projects. Just as we would consider contributing code to projects that help us, we also need to consider donating money to those projects. The ESLint team feels grateful for the funding we have received and equally grateful to our dependencies without which ESLint couldn’t exist. We hope that this model will spread to other open source projects as well.&lt;/p&gt;
&lt;p&gt;And last, we intend to continue hiring professionals to work on big projects. There are a lot of different aspects to running an open source project, and expecting volunteers to handle all of those aspects in unrealistic. We’ve had a great experience on the website project (which should be completed in the next few months) and we’ll be looking for other ways to create more value for the ESLint community going forward.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.9.0 released</title>
    <link href="https://eslint.org/blog/2022/02/eslint-v8.9.0-released/"/>
    <updated>2022-02-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/02/eslint-v8.9.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New &lt;code&gt;es2022&lt;/code&gt; &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring/language-options#specifying-environments&quot;&gt;environment&lt;/a&gt; has been added. When enabled, it adds all ECMAScript 2022 globals (which are currently the same as ECMAScript 2021 globals) and automatically sets the &lt;code&gt;ecmaVersion&lt;/code&gt; parser option to &lt;code&gt;13&lt;/code&gt;. Previously, we used to add new ES environments only if they contain new globals compared to previous years. New &lt;code&gt;es2016&lt;/code&gt;, &lt;code&gt;es2018&lt;/code&gt;, and &lt;code&gt;es2019&lt;/code&gt; environments have also been added to fill in the gaps between years.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;eslint-scope&lt;/code&gt; has been updated to ignore &lt;code&gt;&amp;quot;use strict&amp;quot;&lt;/code&gt; directives in ES3 code.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;eslint-visitor-keys&lt;/code&gt; package now contains built-in TypeScript declarations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68f64a9218341e5e9d83270c72587e1b413846de&quot;&gt;&lt;code&gt;68f64a9&lt;/code&gt;&lt;/a&gt; feat: update eslint-scope to ignore &lt;code&gt;&amp;quot;use strict&amp;quot;&lt;/code&gt; directives in ES3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15595&quot;&gt;#15595&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db576396d20f5e31af1a90f8e5d88e08284a1672&quot;&gt;&lt;code&gt;db57639&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;es2016&lt;/code&gt;, &lt;code&gt;es2018&lt;/code&gt;, &lt;code&gt;es2019&lt;/code&gt;, and &lt;code&gt;es2022&lt;/code&gt; environments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15587&quot;&gt;#15587&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2dc38aa653f1d5137a9abf82024c67a11620bb7c&quot;&gt;&lt;code&gt;2dc38aa&lt;/code&gt;&lt;/a&gt; feat: fix bug with arrow function return types in &lt;a href=&quot;https://eslint.org/docs/rules/function-paren-newline&quot;&gt;function-paren-newline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15541&quot;&gt;#15541&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6f940c3ce715327f282c197d0f71b91848e5d83d&quot;&gt;&lt;code&gt;6f940c3&lt;/code&gt;&lt;/a&gt; feat: Implement FlatRuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15519&quot;&gt;#15519&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/570a03699c5abfbcde39bb00fba39329695771e5&quot;&gt;&lt;code&gt;570a036&lt;/code&gt;&lt;/a&gt; docs: add &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;&lt;code&gt;one-var&lt;/code&gt;&lt;/a&gt; example with &lt;code&gt;for-loop&lt;/code&gt; initializer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15596&quot;&gt;#15596&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/417191dff0dbfa353675c409e25f27f578ee1559&quot;&gt;&lt;code&gt;417191d&lt;/code&gt;&lt;/a&gt; docs: Remove the $ prefix in terminal commands (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15565&quot;&gt;#15565&lt;/a&gt;) (Andreas Lewis)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/389ff34e26cb8ebad49e5ace0280a1f859f8d7ca&quot;&gt;&lt;code&gt;389ff34&lt;/code&gt;&lt;/a&gt; docs: add missing &lt;code&gt;Variable#scope&lt;/code&gt; property in the scope manager docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15571&quot;&gt;#15571&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f63795dc710f6394d884932034a3e0cbe48f4ad2&quot;&gt;&lt;code&gt;f63795d&lt;/code&gt;&lt;/a&gt; docs: &lt;a href=&quot;https://eslint.org/docs/rules/no-eval&quot;&gt;no-eval&lt;/a&gt; replace dead link with working one (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15568&quot;&gt;#15568&lt;/a&gt;) (rasenplanscher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0383591a6cd7083455af9e34fa9333da7fed46bf&quot;&gt;&lt;code&gt;0383591&lt;/code&gt;&lt;/a&gt; docs: Remove old Markdown issue template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15556&quot;&gt;#15556&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8dd5a286bcb68595b85cd29490e081251a2c3c7&quot;&gt;&lt;code&gt;a8dd5a2&lt;/code&gt;&lt;/a&gt; docs: add ‘when not to use it’ section in &lt;a href=&quot;https://eslint.org/docs/rules/no-duplicate-case&quot;&gt;no-duplicate-case&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15563&quot;&gt;#15563&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ad439ed1d6c4ee50183c8f5d146a771e6c1be4c&quot;&gt;&lt;code&gt;1ad439e&lt;/code&gt;&lt;/a&gt; docs: add missed verb in docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15550&quot;&gt;#15550&lt;/a&gt;) (Jeff Mosawy)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/586d45c54b8468fb23376b7b2aedf984cf701cc2&quot;&gt;&lt;code&gt;586d45c&lt;/code&gt;&lt;/a&gt; chore: Upgrade to espree@9.3.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15600&quot;&gt;#15600&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/623e1e28643381025b393a379493d9baea9b4869&quot;&gt;&lt;code&gt;623e1e2&lt;/code&gt;&lt;/a&gt; chore: Upgrade to eslint-visitor-keys@3.3.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15599&quot;&gt;#15599&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/355b23d0c4e050be4e53292f552a47c10ec6e00e&quot;&gt;&lt;code&gt;355b23d&lt;/code&gt;&lt;/a&gt; chore: fix outdated link to Code of Conduct in PR template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15578&quot;&gt;#15578&lt;/a&gt;) (Rich Trott)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b10fef25c99134d514fec4ddde19302661db5974&quot;&gt;&lt;code&gt;b10fef2&lt;/code&gt;&lt;/a&gt; ci: use Node 16 for browser test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15569&quot;&gt;#15569&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/92f89fb0647fef10468fd70d6782a845d75330e3&quot;&gt;&lt;code&gt;92f89fb&lt;/code&gt;&lt;/a&gt; chore: suggest demo link in bug report template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15557&quot;&gt;#15557&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.8.0 released</title>
    <link href="https://eslint.org/blog/2022/01/eslint-v8.8.0-released/"/>
    <updated>2022-01-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/01/eslint-v8.8.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;suppressed-messages&quot; tabindex=&quot;-1&quot;&gt;Suppressed Messages&lt;/h3&gt;
&lt;p&gt;Suppressed messages are lint messages (errors and warnings) that were suppressed by &lt;code&gt;eslint-disable&lt;/code&gt;, &lt;code&gt;eslint-disable-line&lt;/code&gt; and &lt;code&gt;eslint-disable-next-line&lt;/code&gt; comments.&lt;/p&gt;
&lt;p&gt;ESLint API now provides information about suppressed lint messages. This information is available to custom formatters and API users as a new property &lt;code&gt;suppressedMessages&lt;/code&gt; (array of &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#-suppressedlintmessage-type&quot;&gt;SuppressedLintMessage&lt;/a&gt; objects) on &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#-lintresult-type&quot;&gt;LintResult&lt;/a&gt; objects.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d60812d440762dff72420714273c714c4c5d074&quot;&gt;&lt;code&gt;5d60812&lt;/code&gt;&lt;/a&gt; feat: implement rfc 2021-suppression-support (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15459&quot;&gt;#15459&lt;/a&gt;) (Yiwei Ding)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5769cc23eca7197bb5993a0201cc269a056d4dfd&quot;&gt;&lt;code&gt;5769cc2&lt;/code&gt;&lt;/a&gt; docs: fix relative link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15544&quot;&gt;#15544&lt;/a&gt;) (Nick Schonning)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ccbc35ff3ebc89bb524a8fd8dc60df9408e58275&quot;&gt;&lt;code&gt;ccbc35f&lt;/code&gt;&lt;/a&gt; docs: trimmed rules h1s to just be rule names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15514&quot;&gt;#15514&lt;/a&gt;) (Josh Goldberg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/851f1f18bd1a5da32c1b645bfcb28fadc627ad9e&quot;&gt;&lt;code&gt;851f1f1&lt;/code&gt;&lt;/a&gt; docs: fixed typo in comment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15531&quot;&gt;#15531&lt;/a&gt;) (Jiapei Liang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d7af55759eab2328aeeb71098d91f4a5e41b269&quot;&gt;&lt;code&gt;7d7af55&lt;/code&gt;&lt;/a&gt; docs: address upcoming violation of markdownlint rule MD050/strong-style (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15529&quot;&gt;#15529&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.7.0 released</title>
    <link href="https://eslint.org/blog/2022/01/eslint-v8.7.0-released/"/>
    <updated>2022-01-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2022/01/eslint-v8.7.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The functionality behind &lt;code&gt;eslint --init&lt;/code&gt; has been pulled into a standalone &lt;a href=&quot;https://github.com/eslint/create-config&quot;&gt;&lt;code&gt;@eslint/create-config&lt;/code&gt;&lt;/a&gt; package. Now, you can initialize ESLint in a new project with &lt;code&gt;npm init @eslint/config&lt;/code&gt;, &lt;code&gt;npx @eslint/create-config&lt;/code&gt;, or &lt;code&gt;yarn create @eslint/config&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Several rules gained support for &lt;a href=&quot;https://github.com/tc39/ecma262/pull/2154&quot;&gt;arbitrary module namespace names&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19ad061290e1e97f760cfdce90a651cea9042c32&quot;&gt;&lt;code&gt;19ad061&lt;/code&gt;&lt;/a&gt; feat: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; support casing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15439&quot;&gt;#15439&lt;/a&gt;) (gfyoung)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/564ecdb992c6e236fa3ca903f8b2a645afc32d7e&quot;&gt;&lt;code&gt;564ecdb&lt;/code&gt;&lt;/a&gt; feat: Support arbitrary module namespace names in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15491&quot;&gt;#15491&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/968a02af455f76446269afe07191c6aa37d44a88&quot;&gt;&lt;code&gt;968a02a&lt;/code&gt;&lt;/a&gt; feat: Support arbitrary module namespace names in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-rename&quot;&gt;no-useless-rename&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15493&quot;&gt;#15493&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d2b9a6dfa544f7ab084425eafc90a90aa14bcae&quot;&gt;&lt;code&gt;0d2b9a6&lt;/code&gt;&lt;/a&gt; feat: move &lt;code&gt;eslint --init&lt;/code&gt; to @eslint/create-config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15150&quot;&gt;#15150&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/127f524337f92dd72d36e71e646c91c9715ad444&quot;&gt;&lt;code&gt;127f524&lt;/code&gt;&lt;/a&gt; feat: false negative with &lt;code&gt;property&lt;/code&gt; option in &lt;a href=&quot;https://eslint.org/docs/rules/id-match&quot;&gt;&lt;code&gt;id-match&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15474&quot;&gt;#15474&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/359b2c18233cb48f7dae9433a877e5727fab3411&quot;&gt;&lt;code&gt;359b2c1&lt;/code&gt;&lt;/a&gt; feat: Support arbitrary module namespace names in the &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15490&quot;&gt;#15490&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3549571702dc3e0d9a4d3de615adb6abb13859c4&quot;&gt;&lt;code&gt;3549571&lt;/code&gt;&lt;/a&gt; feat: Support arbitrary module namespace names in the &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;quotes&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15479&quot;&gt;#15479&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5563c454901aafd54e01521e923cdcbaf051b08d&quot;&gt;&lt;code&gt;5563c45&lt;/code&gt;&lt;/a&gt; feat: Support arbitrary module namespace names in &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15481&quot;&gt;#15481&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd3683f2f5ead78a2444163cab6849784a966a0a&quot;&gt;&lt;code&gt;fd3683f&lt;/code&gt;&lt;/a&gt; feat: Support arbitrary module namespace names in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-exports&quot;&gt;no-restricted-exports&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15478&quot;&gt;#15478&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8db9a597672d3f9122f1cc8de8dfeb6a7f6aeac&quot;&gt;&lt;code&gt;a8db9a5&lt;/code&gt;&lt;/a&gt; fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-this&quot;&gt;no-invalid-this&lt;/a&gt; false positive in class field initializer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15495&quot;&gt;#15495&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02d642690282189664b9551e02fb7ff0e4b5c4fb&quot;&gt;&lt;code&gt;02d6426&lt;/code&gt;&lt;/a&gt; fix: Correctly consume RuleTester statics (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15507&quot;&gt;#15507&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db15802ec4d129c89e563a4bf43ec610292695ab&quot;&gt;&lt;code&gt;db15802&lt;/code&gt;&lt;/a&gt; fix: Add property &lt;code&gt;fatalErrorCount&lt;/code&gt; to ignored file results (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15520&quot;&gt;#15520&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03ac8cfc773279c01a62897692160f9a883ff4f5&quot;&gt;&lt;code&gt;03ac8cf&lt;/code&gt;&lt;/a&gt; fix: Prevent false positives with &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15486&quot;&gt;#15486&lt;/a&gt;) (Jordan Eldredge)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f50f849d2d2d92f28a944846cda209eaf624b9f4&quot;&gt;&lt;code&gt;f50f849&lt;/code&gt;&lt;/a&gt; docs: Update CLI docs to prefer local install (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15513&quot;&gt;#15513&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0469eb1028e82e71a2da8608a1b8864dc3f47f24&quot;&gt;&lt;code&gt;0469eb1&lt;/code&gt;&lt;/a&gt; docs: Update shell code fences for new website (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15522&quot;&gt;#15522&lt;/a&gt;) (Olga)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/369fb1b066279d761e59502111c2580834a41648&quot;&gt;&lt;code&gt;369fb1b&lt;/code&gt;&lt;/a&gt; chore: Upgrade to eslint-visitor-keys@3.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15526&quot;&gt;#15526&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba6317b4031c9f782b317bd1d9913e70b5625f28&quot;&gt;&lt;code&gt;ba6317b&lt;/code&gt;&lt;/a&gt; ci: remove master branch from CI configs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15501&quot;&gt;#15501&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79b6340d6ced0ad62628de6e51dce18d50a5be9f&quot;&gt;&lt;code&gt;79b6340&lt;/code&gt;&lt;/a&gt; chore: fixed typo in client-Engine (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15497&quot;&gt;#15497&lt;/a&gt;) (Abhay Gupta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6278281fab5e1a9623c32ace62a050561e1c0a21&quot;&gt;&lt;code&gt;6278281&lt;/code&gt;&lt;/a&gt; chore: switch &lt;code&gt;new syntax&lt;/code&gt; issue template to forms (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15480&quot;&gt;#15480&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.6.0 released</title>
    <link href="https://eslint.org/blog/2021/12/eslint-v8.6.0-released/"/>
    <updated>2021-12-31T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/12/eslint-v8.6.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;ESLint v8.6.0 allows rule lists or descriptions in &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring/rules#using-configuration-comments-1&quot;&gt;&lt;code&gt;eslint-disable-next-line&lt;/code&gt; comments&lt;/a&gt; to wrap lines:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* eslint-disable-next-line no-console --&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt; * Here&#39;s a very long description about why this configuration is necessary&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt; * along with some additional information.&lt;/span&gt;&lt;br /&gt; */&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;hello&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6802a54837ea008bef4d5ae11522941693ba5ef6&quot;&gt;&lt;code&gt;6802a54&lt;/code&gt;&lt;/a&gt; feat: handle logical assignment in &lt;a href=&quot;https://eslint.org/docs/rules/no-self-assign&quot;&gt;no-self-assign&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14152&quot;&gt;#14152&lt;/a&gt;) (Zzzen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3b38018ef5cb004ad5bc011de726bd2df2eb2f3f&quot;&gt;&lt;code&gt;3b38018&lt;/code&gt;&lt;/a&gt; feat: allow to define &lt;code&gt;eslint-disable-next-line&lt;/code&gt; in multiple lines (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15436&quot;&gt;#15436&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9d6fe5a6b65f397bafc5eb0a995e96717cdc9b53&quot;&gt;&lt;code&gt;9d6fe5a&lt;/code&gt;&lt;/a&gt; feat: false negative with &lt;code&gt;onlyDeclarations&lt;/code&gt; + &lt;code&gt;properties&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/id-match&quot;&gt;id-match&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15431&quot;&gt;#15431&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c4dee2e87dac8d0751ce2426ded651ed0986112&quot;&gt;&lt;code&gt;6c4dee2&lt;/code&gt;&lt;/a&gt; docs: Document homedir is a configuration root (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15469&quot;&gt;#15469&lt;/a&gt;) (Bas Bosman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51c37b118aed9c0d7a0efd40c491efca04c82ef9&quot;&gt;&lt;code&gt;51c37b1&lt;/code&gt;&lt;/a&gt; docs: consistency changes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15404&quot;&gt;#15404&lt;/a&gt;) (Bas Bosman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/775d18138244a28ebe1cb92849cd0f4e8cd27672&quot;&gt;&lt;code&gt;775d181&lt;/code&gt;&lt;/a&gt; docs: Mention character classes in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;no-useless-escape&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15421&quot;&gt;#15421&lt;/a&gt;) (Sebastian Simon)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a384fc287cebb7be5fe5ed95497d578437a503a&quot;&gt;&lt;code&gt;3a384fc&lt;/code&gt;&lt;/a&gt; chore: Upgrade espree to 9.3.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15473&quot;&gt;#15473&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1443cc2fc8785157936b864258924fe9bcd23210&quot;&gt;&lt;code&gt;1443cc2&lt;/code&gt;&lt;/a&gt; chore: Update blogpost.md.ejs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15468&quot;&gt;#15468&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28e907a4ca05a026d156f814f4118f8fe713e99d&quot;&gt;&lt;code&gt;28e907a&lt;/code&gt;&lt;/a&gt; refactor: remove unused parameter in &lt;code&gt;linter.js&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15451&quot;&gt;#15451&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eaa08d3055b195bce59cc96bb63ac29038cd7c7d&quot;&gt;&lt;code&gt;eaa08d3&lt;/code&gt;&lt;/a&gt; test: add tests for &lt;code&gt;allowReserved&lt;/code&gt; parser option with flat config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15450&quot;&gt;#15450&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.5.0 released</title>
    <link href="https://eslint.org/blog/2021/12/eslint-v8.5.0-released/"/>
    <updated>2021-12-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/12/eslint-v8.5.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;One new rule has been added: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-has-own&quot;&gt;prefer-object-has-own&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/prefer-regex-literals&quot;&gt;prefer-regex-literals&lt;/a&gt; rule now provides &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions&quot;&gt;suggestions&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/94e77a693fd5124c9057320310b41e92567d7e76&quot;&gt;&lt;code&gt;94e77a6&lt;/code&gt;&lt;/a&gt; feat: Suggestions support for &lt;a href=&quot;https://eslint.org/docs/rules/prefer-regex-literals&quot;&gt;&lt;code&gt;prefer-regex-literals&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15077&quot;&gt;#15077&lt;/a&gt;) (Yash Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eafaf52464c01072fcf7be2bd2d91cd0b3ae67d0&quot;&gt;&lt;code&gt;eafaf52&lt;/code&gt;&lt;/a&gt; feat: add &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-has-own&quot;&gt;&lt;code&gt;prefer-object-has-own&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15346&quot;&gt;#15346&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d832d4ad55f3c987aca8d858809cbcb77697648&quot;&gt;&lt;code&gt;7d832d4&lt;/code&gt;&lt;/a&gt; fix: improve &lt;a href=&quot;https://eslint.org/docs/rules/prefer-template&quot;&gt;&lt;code&gt;prefer-template&lt;/code&gt;&lt;/a&gt; fixer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15230&quot;&gt;#15230&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/981fb48991448bec171d7d4332d7dc514252f83f&quot;&gt;&lt;code&gt;981fb48&lt;/code&gt;&lt;/a&gt; fix: do not report global references in &lt;a href=&quot;https://eslint.org/docs/rules/id-match&quot;&gt;&lt;code&gt;id-match&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15420&quot;&gt;#15420&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f13d4a6cf7c7ff6160be7426fc6fe02e3e37a0b7&quot;&gt;&lt;code&gt;f13d4a6&lt;/code&gt;&lt;/a&gt; fix: improve autofix of &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-has-own&quot;&gt;&lt;code&gt;prefer-object-has-own&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15419&quot;&gt;#15419&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f4559a0f7150ad7494658bd5ea846cfca5073caf&quot;&gt;&lt;code&gt;f4559a0&lt;/code&gt;&lt;/a&gt; fix: add helpful message when test case has non-string code/name (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15425&quot;&gt;#15425&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/314c84c1b83b32e75587ce7a77130eac7e2a8f49&quot;&gt;&lt;code&gt;314c84c&lt;/code&gt;&lt;/a&gt; docs: add an incorrect code example in &lt;a href=&quot;https://eslint.org/docs/rules/for-direction&quot;&gt;for-direction&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15434&quot;&gt;#15434&lt;/a&gt;) (Holger Jeromin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3928175d01c6ac2b37147b3256c56df8faf2c6c4&quot;&gt;&lt;code&gt;3928175&lt;/code&gt;&lt;/a&gt; docs: add destructuring examples for &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;&lt;code&gt;computed-property-spacing&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15423&quot;&gt;#15423&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a53e59eab7da52e3df095a679a6fdab74a7bce6f&quot;&gt;&lt;code&gt;a53e59e&lt;/code&gt;&lt;/a&gt; docs: add more examples for &lt;a href=&quot;https://eslint.org/docs/rules/array-element-newline&quot;&gt;&lt;code&gt;array-element-newline&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15427&quot;&gt;#15427&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74cf0a040e1a83990d8d7eb57e1f5ce919a11ebe&quot;&gt;&lt;code&gt;74cf0a0&lt;/code&gt;&lt;/a&gt; docs: update CLA info (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15370&quot;&gt;#15370&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e84195ea39b5cf54d7a551c62671af80b859f1ac&quot;&gt;&lt;code&gt;e84195e&lt;/code&gt;&lt;/a&gt; docs: fix heading level for an option in &lt;a href=&quot;https://eslint.org/docs/rules/class-methods-use-this&quot;&gt;&lt;code&gt;class-methods-use-this&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15399&quot;&gt;#15399&lt;/a&gt;) (Takuya Fukuju)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/225f2111ebcfc6bcd2d475f5261c85eb00fb0191&quot;&gt;&lt;code&gt;225f211&lt;/code&gt;&lt;/a&gt; test: add destructuring test cases for &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;&lt;code&gt;computed-property-spacing&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15424&quot;&gt;#15424&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2c7ba6c34c8943dc24a1c41317d536c1a63cb36&quot;&gt;&lt;code&gt;f2c7ba6&lt;/code&gt;&lt;/a&gt; ci: use node v16 for &lt;code&gt;macOS&lt;/code&gt; and &lt;code&gt;windows&lt;/code&gt; jobs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15418&quot;&gt;#15418&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.4.1 released</title>
    <link href="https://eslint.org/blog/2021/12/eslint-v8.4.1-released/"/>
    <updated>2021-12-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/12/eslint-v8.4.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/234e3d98eeab8956cefb14c982b9c348c21bb2d9&quot;&gt;&lt;code&gt;234e3d9&lt;/code&gt;&lt;/a&gt; fix: revert changes to reported locations in &lt;a href=&quot;https://eslint.org/docs/rules/max-lines-per-function&quot;&gt;max-lines-per-function&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15397&quot;&gt;#15397&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fa4d4830a0e77f92154079ada17ffb893ce64232&quot;&gt;&lt;code&gt;fa4d483&lt;/code&gt;&lt;/a&gt; docs: fix typo in example for &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;&lt;code&gt;sort-keys&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15393&quot;&gt;#15393&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.4.0 released</title>
    <link href="https://eslint.org/blog/2021/12/eslint-v8.4.0-released/"/>
    <updated>2021-12-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/12/eslint-v8.4.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;new-parser-option&quot; tabindex=&quot;-1&quot;&gt;New Parser Option&lt;/h3&gt;
&lt;p&gt;The default parser has a new option &lt;code&gt;allowReserved&lt;/code&gt; (boolean, default &lt;code&gt;false&lt;/code&gt;). When set to &lt;code&gt;true&lt;/code&gt;, reserved words can be used as identifiers.&lt;/p&gt;
&lt;p&gt;This option can only be used with &lt;code&gt;&amp;quot;ecmaVersion&amp;quot;: 3&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token property&quot;&gt;&quot;parserOptions&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token property&quot;&gt;&quot;ecmaVersion&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token property&quot;&gt;&quot;allowReserved&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;new-features-for-custom-formatters&quot; tabindex=&quot;-1&quot;&gt;New Features for Custom Formatters&lt;/h3&gt;
&lt;p&gt;This release adds two new features for &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-custom-formatters&quot;&gt;custom formatters&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&quot;async-formatters&quot; tabindex=&quot;-1&quot;&gt;Async Formatters&lt;/h4&gt;
&lt;p&gt;Formatters are now allowed to return &lt;code&gt;Promise&amp;lt;string&amp;gt;&lt;/code&gt;. That is, a formatter can be an async function.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;//------ my-formatter.js ------&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;exports&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;results&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; something &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getSomethingAsync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// ...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; formattedResults&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;context.cwd&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;context.cwd&lt;/code&gt;&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;context&lt;/code&gt; argument has a new property &lt;code&gt;cwd&lt;/code&gt; (string, absolute path). It represents the working directory used for linting. This value comes from the &lt;code&gt;cwd&lt;/code&gt; constructor option of the &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#-new-eslintoptions&quot;&gt;ESLint&lt;/a&gt; class, and formatters can use it to output relative paths more reliably than by using &lt;code&gt;process.cwd()&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;//------ my-formatter.js ------&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;exports&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;results&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; cwd &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;cwd&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// ...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5771663e8d3e86fec9454ee0af439c6989506bf3&quot;&gt;&lt;code&gt;5771663&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;allowReserved&lt;/code&gt; parser option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15387&quot;&gt;#15387&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/32ac37a76b2e009a8f106229bc7732671d358189&quot;&gt;&lt;code&gt;32ac37a&lt;/code&gt;&lt;/a&gt; feat: Flat config support in Linter (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13481&quot;&gt;#13481&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15185&quot;&gt;#15185&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d041f345cdf0306f15faa2f305fe1d21ef137eb1&quot;&gt;&lt;code&gt;d041f34&lt;/code&gt;&lt;/a&gt; feat: Treat Class/New Expressions as truthy in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15326&quot;&gt;#15326&lt;/a&gt;) (Jordan Eldredge)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f44cf505765b663e371412ab57f0f1dbbe78513&quot;&gt;&lt;code&gt;8f44cf5&lt;/code&gt;&lt;/a&gt; feat: report only lines that exceed the limit in &lt;a href=&quot;https://eslint.org/docs/rules/max-lines-per-function&quot;&gt;max-lines-per-function&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15140&quot;&gt;#15140&lt;/a&gt;) (Sneh Khatri)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/808ad35f204c838cd5eb8d766807dc43692f42f9&quot;&gt;&lt;code&gt;808ad35&lt;/code&gt;&lt;/a&gt; feat: pass cwd to formatters (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/57&quot;&gt;eslint/rfcs#57&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13392&quot;&gt;#13392&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f1b7499a5162d3be918328ce496eb80692353a5a&quot;&gt;&lt;code&gt;f1b7499&lt;/code&gt;&lt;/a&gt; feat: support async formatters (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15243&quot;&gt;#15243&lt;/a&gt;) (MO)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4940cc5c4903a691fe51d409137dd573c4c7706e&quot;&gt;&lt;code&gt;4940cc5&lt;/code&gt;&lt;/a&gt; fix: mark --rulesdir option as deprecated in CLI docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15310&quot;&gt;#15310&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54deec56bc25d516becaf767769ee7543f491d62&quot;&gt;&lt;code&gt;54deec5&lt;/code&gt;&lt;/a&gt; docs: update &lt;a href=&quot;http://integrations.md/&quot;&gt;integrations.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15380&quot;&gt;#15380&lt;/a&gt;) (Vlad Sholokhov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fa0423af7f8453f6c97b915b3b026f258b76a600&quot;&gt;&lt;code&gt;fa0423a&lt;/code&gt;&lt;/a&gt; docs: fix typo in PR template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15365&quot;&gt;#15365&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e233920857e282ba22116ad5f1dcc6dfabc8ef5b&quot;&gt;&lt;code&gt;e233920&lt;/code&gt;&lt;/a&gt; docs: enable a few more markdownlint rules and fix violations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15368&quot;&gt;#15368&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/632176dc43180ea4e7f99da429fee3ee3814a04d&quot;&gt;&lt;code&gt;632176d&lt;/code&gt;&lt;/a&gt; docs: Dedent needlessly indented example in &lt;a href=&quot;https://eslint.org/docs/rules/getter-return&quot;&gt;getter-return&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15363&quot;&gt;#15363&lt;/a&gt;) (Jordan Eldredge)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4497e880248c24dc19eea8a5466555b847c0c7eb&quot;&gt;&lt;code&gt;4497e88&lt;/code&gt;&lt;/a&gt; docs: Update release notes blog post template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15285&quot;&gt;#15285&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/efede90d59edc5cca9cd739df7e98f1ff00ca37d&quot;&gt;&lt;code&gt;efede90&lt;/code&gt;&lt;/a&gt; chore: upgrade @eslint/eslintrc@1.0.5 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15389&quot;&gt;#15389&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b8c846c77234125fbb211980bc1e62dc8791513&quot;&gt;&lt;code&gt;0b8c846&lt;/code&gt;&lt;/a&gt; chore: fix update-readme to avoid multiple consecutive blank lines (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15375&quot;&gt;#15375&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/94b2a8b3d1f7d139dd6b06216a64727b7d5f009b&quot;&gt;&lt;code&gt;94b2a8b&lt;/code&gt;&lt;/a&gt; chore: Use default Chromium binary in M1 Mac tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15371&quot;&gt;#15371&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba58d94cb51d4d2644c024446d5750eaf4853129&quot;&gt;&lt;code&gt;ba58d94&lt;/code&gt;&lt;/a&gt; ci: use node &lt;code&gt;v16&lt;/code&gt; for Verify Files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15364&quot;&gt;#15364&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e32ee591e978188b121604d0af9cbc04a50a3b5&quot;&gt;&lt;code&gt;1e32ee5&lt;/code&gt;&lt;/a&gt; chore: add jsdoc type annotation to rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15291&quot;&gt;#15291&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Contra becomes ESLint gold sponsor</title>
    <link href="https://eslint.org/blog/2021/12/contra-gold-sponsor-eslint/"/>
    <updated>2021-12-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/12/contra-gold-sponsor-eslint/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog-covers/sponsorship-contra.png&quot; alt=&quot;Contra Donates to ESLint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We are happy to share that &lt;a href=&quot;https://contra.com/&quot;&gt;Contra&lt;/a&gt; has become an ESLint gold sponsor, donating $1,000 each month for the ongoing maintenance and development of ESLint! Contra is a professional network built around independent work, allowing designers, developers, and more, to live and work the way they want.&lt;/p&gt;
&lt;p&gt;Here’s what the folks at Contra had to say about ESLint:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“ESLint plays a major role in helping us create a safe and consistent experience across a growing number of codebases and engineers. We are grateful for all the open-source projects that are helping us build Contra, and ESLint is the first of many open-source projects that we are committed to back.”
-– Gajus Kuizinas, Co-Founder / CTO at Contra&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ESLint is grateful for the support of the Contra team, and we are putting these funds to work by paying more contributors to help maintain and develop ESLint. Donations such as these have allowed us to take on more ambitious projects, such as redesigning the ESLint website, with more to come in 2022.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.3.0 released</title>
    <link href="https://eslint.org/blog/2021/11/eslint-v8.3.0-released/"/>
    <updated>2021-11-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/11/eslint-v8.3.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This release supports ES2022 class static blocks in rules, the default parser, and scope analysis.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;C&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;static&lt;/span&gt; x &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;static&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;static&lt;/span&gt; z&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; obj &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;doSomethingWith&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;x&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; obj&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; obj&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token keyword&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It also supports &lt;code&gt;#x in obj&lt;/code&gt;, officially known as ergonomic brand checks for private fields.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60b0a292efd1b9cdc318b1e88a0cb7bbf14860b1&quot;&gt;&lt;code&gt;60b0a29&lt;/code&gt;&lt;/a&gt; feat: add &lt;code&gt;allowProperties&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;require-atomic-updates&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15238&quot;&gt;#15238&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79278a14f1c8747bff8f5cb2100d8776f9d517f2&quot;&gt;&lt;code&gt;79278a1&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;no-use-before-define&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15312&quot;&gt;#15312&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ddd01dcd5f14c6ddea5decca46db2f379ec35aeb&quot;&gt;&lt;code&gt;ddd01dc&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/no-redeclare&quot;&gt;no-redeclare&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15313&quot;&gt;#15313&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de69cec834411aeb276a525c11dc10f628df2f51&quot;&gt;&lt;code&gt;de69cec&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/no-inner-declarations&quot;&gt;no-inner-declarations&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15290&quot;&gt;#15290&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2fe7ef7ea0458de56bed4e4c3d5f71aaebd3f28&quot;&gt;&lt;code&gt;e2fe7ef&lt;/code&gt;&lt;/a&gt; feat: support for private-in syntax (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14811&quot;&gt;#14811&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15060&quot;&gt;#15060&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/34bc8d7cb42d696ec56e0a3c780aa5b042285d6b&quot;&gt;&lt;code&gt;34bc8d7&lt;/code&gt;&lt;/a&gt; feat: Update espree and eslint-scope (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15338&quot;&gt;#15338&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b171cd7ec839a0481a74a613b0d48a193f16bb6b&quot;&gt;&lt;code&gt;b171cd7&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/max-depth&quot;&gt;max-depth&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15316&quot;&gt;#15316&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6487df371496dd15272e2097e4d2c932532c8727&quot;&gt;&lt;code&gt;6487df3&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/padded-blocks&quot;&gt;padded-blocks&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15333&quot;&gt;#15333&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/194f36d9c009a72ec72fa9592ea9e31f9f168a52&quot;&gt;&lt;code&gt;194f36d&lt;/code&gt;&lt;/a&gt; feat: update the &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;complexity&lt;/a&gt; rule for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15328&quot;&gt;#15328&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3530337e71327d8325d0de01e8e73952010b1a08&quot;&gt;&lt;code&gt;3530337&lt;/code&gt;&lt;/a&gt; feat: update the &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15324&quot;&gt;#15324&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f03cd146a97ed312d635ac7b53ba0f8d01aa8b47&quot;&gt;&lt;code&gt;f03cd14&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/lines-around-comment&quot;&gt;lines-around-comment&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15323&quot;&gt;#15323&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c64747a8d7a4f896f0cbce67c7f5e7690837a9b&quot;&gt;&lt;code&gt;5c64747&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15322&quot;&gt;#15322&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df2f1cc81a559bbc9eee78a3a97315e2927af764&quot;&gt;&lt;code&gt;df2f1cc&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/max-statements&quot;&gt;max-statements&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15315&quot;&gt;#15315&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd5a0b8506e4b6acd740ab966cc2c0e4ff6a4d15&quot;&gt;&lt;code&gt;fd5a0b8&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;prefer-const&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15325&quot;&gt;#15325&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3669fde2316f136af3a16b58b0c44e8ec196cee&quot;&gt;&lt;code&gt;b3669fd&lt;/code&gt;&lt;/a&gt; feat: code path analysis for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15282&quot;&gt;#15282&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/15c1397f0063931f50f31af8d110a23c6d660000&quot;&gt;&lt;code&gt;15c1397&lt;/code&gt;&lt;/a&gt; feat: update eslint-scope for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15321&quot;&gt;#15321&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a1bb4b1ee87c1b33f2d86ef70b3d81e83377547&quot;&gt;&lt;code&gt;1a1bb4b&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15317&quot;&gt;#15317&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b666e0682bacf44d2a5afa0023874b8b131b5f5&quot;&gt;&lt;code&gt;9b666e0&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;padding-line-between-statements&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15318&quot;&gt;#15318&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3a267f5f39167e3ee8248ae6b9cae5034d0486f&quot;&gt;&lt;code&gt;d3a267f&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/class-methods-use-this&quot;&gt;class-methods-use-this&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15298&quot;&gt;#15298&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cdaa54130aca7a9c8dfd76c613d0718b048401b2&quot;&gt;&lt;code&gt;cdaa541&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/no-lone-blocks&quot;&gt;no-lone-blocks&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15295&quot;&gt;#15295&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8611538b47e325c6d6b115bf3d901a26e9ac29f8&quot;&gt;&lt;code&gt;8611538&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/block-spacing&quot;&gt;block-spacing&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15297&quot;&gt;#15297&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b56844ece544e501f0173f6427038c9c5e0534f&quot;&gt;&lt;code&gt;7b56844&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15289&quot;&gt;#15289&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea1871146402a77234393613fe56a416382c7f0f&quot;&gt;&lt;code&gt;ea18711&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-semi&quot;&gt;no-extra-semi&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15287&quot;&gt;#15287&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f0971ffc2ca6f4513eeffdf5cfa36826c8f4543&quot;&gt;&lt;code&gt;0f0971f&lt;/code&gt;&lt;/a&gt; feat: update &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;semi&lt;/a&gt; rule for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15286&quot;&gt;#15286&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/abe740ce68dcc9e5413df93b3d80a2e3260f1c18&quot;&gt;&lt;code&gt;abe740c&lt;/code&gt;&lt;/a&gt; feat: add examples for &lt;a href=&quot;https://eslint.org/docs/rules/block-scoped-var&quot;&gt;block-scoped-var&lt;/a&gt; with class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15302&quot;&gt;#15302&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0338fd201614247eeb21e68a26e4b4c8a74f71b0&quot;&gt;&lt;code&gt;0338fd2&lt;/code&gt;&lt;/a&gt; feat: Normalize ecmaVersion to eslint-scope when using custom parser (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15268&quot;&gt;#15268&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8aa764524cf74f0b70d184c7957dbbb5f36a5ac7&quot;&gt;&lt;code&gt;8aa7645&lt;/code&gt;&lt;/a&gt; fix: update &lt;a href=&quot;https://eslint.org/docs/rules/vars-on-top&quot;&gt;vars-on-top&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15306&quot;&gt;#15306&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/479a4cbc70f4032d4accd48e4471629e8635d677&quot;&gt;&lt;code&gt;479a4cb&lt;/code&gt;&lt;/a&gt; fix: update &lt;a href=&quot;https://eslint.org/docs/rules/semi-style&quot;&gt;semi-style&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15309&quot;&gt;#15309&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d1c666d318cc9e1860e1e2c72fbfa4bdd4a2c4b&quot;&gt;&lt;code&gt;6d1c666&lt;/code&gt;&lt;/a&gt; fix: update &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-this&quot;&gt;no-invalid-this&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/rules/no-eval&quot;&gt;no-eval&lt;/a&gt; for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15300&quot;&gt;#15300&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6b85426c33ba7ac0206cccef39ccc875b773aeae&quot;&gt;&lt;code&gt;6b85426&lt;/code&gt;&lt;/a&gt; docs: Expand  &lt;code&gt;--debug&lt;/code&gt; option description in the CLI documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15308&quot;&gt;#15308&lt;/a&gt;) (darkred)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ae52584296887e5fc5b0267346294bb920a00e6&quot;&gt;&lt;code&gt;3ae5258&lt;/code&gt;&lt;/a&gt; docs: the &lt;a href=&quot;https://eslint.org/docs/rules/strict&quot;&gt;strict&lt;/a&gt; rule does not apply to class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15314&quot;&gt;#15314&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9309841a6cfa85005e0bf79e20415bb9220ba46e&quot;&gt;&lt;code&gt;9309841&lt;/code&gt;&lt;/a&gt; docs: Remove inconsistent colon in pull request docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15303&quot;&gt;#15303&lt;/a&gt;) (Jordan Eldredge)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da238cc731a9b5ecd48280e0ea4ebd8a48ebeedc&quot;&gt;&lt;code&gt;da238cc&lt;/code&gt;&lt;/a&gt; docs: remove deprecation note from &lt;a href=&quot;https://eslint.org/docs/rules/lines-around-comment&quot;&gt;lines-around-comment&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15293&quot;&gt;#15293&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1055f16fc6f78cc553f0b1462e8af44244c1f84b&quot;&gt;&lt;code&gt;1055f16&lt;/code&gt;&lt;/a&gt; docs: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-expressions&quot;&gt;no-unused-expressions&lt;/a&gt; - class static blocks don’t have directives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15283&quot;&gt;#15283&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c55216ba958fcc8c3dd29fcaa80298216a48303&quot;&gt;&lt;code&gt;4c55216&lt;/code&gt;&lt;/a&gt; docs: Add variables option to &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;no-use-before-define&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15276&quot;&gt;#15276&lt;/a&gt;) (Mathias Rasmussen)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/edd8d240db8878763dbb147fb6124412c0783a42&quot;&gt;&lt;code&gt;edd8d24&lt;/code&gt;&lt;/a&gt; chore: upgrade eslint-visitor-keys for class static blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15277&quot;&gt;#15277&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>The inception of ESLint</title>
    <link href="https://eslint.org/blog/2021/11/the-inception-of-eslint/"/>
    <updated>2021-11-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/11/the-inception-of-eslint/</id>
    <content type="html">&lt;p&gt;If you’re like me, you probably use a lot of open source tools every day without thinking about how they got started. Few projects share the “why” of their creation: the actual problem they were trying to solve and when they first came across that problem. You can, of course, benefit from open source projects without understanding their origin story, but I always find it interesting to hear about how it all started.&lt;/p&gt;
&lt;p&gt;I recently realized that I’d never shared the origin story of ESLint. I’ve shared some of the decisions I made along the way in previous posts but never the initial domino that fell and led to ESLint’s creation. As you will see, ESLint wasn’t created through some divine intervention or stroke of insight, but rather through a series of events that eventually built up to ESLint’s creation.&lt;/p&gt;
&lt;h2 id=&quot;the-bug&quot; tabindex=&quot;-1&quot;&gt;The bug&lt;/h2&gt;
&lt;p&gt;I was still fairly new at Box when a teammate was working on a strange bug. A client had reported problems using the web application in Internet Explorer 7 (we were probably one of the last companies supporting IE7 at that point). A developer had apparently used the native &lt;code&gt;XMLHttpRequest&lt;/code&gt; object in some JavaScript code instead of our in-house wrapper. This wasn’t a problem for any other browser, and there wasn’t a problem testing with IE7 internally. The problem occurred because the client had an internal security policy that disabled ActiveX in Internet Explorer, and since the native &lt;code&gt;XMLHttpRequest&lt;/code&gt; object in IE7 was really just a wrapper around the ActiveX object, it was blocked as well.&lt;/p&gt;
&lt;p&gt;The solution was easy enough, just make sure everyone knows to use the in-house Ajax wrapper instead of the native &lt;code&gt;XMLHttpRequest&lt;/code&gt; object. But how could we enforce this? It turned out that Box had a JavaScript “linter” as part of the build system. I put the word linter in quotes because it was really just a series of regular expressions that were run against JavaScript code. For this case, my teammate added a regular expression for “XMLHttpRequest” and that was the solution. The build would break going forward if someone tried to commit a JavaScript file matching that pattern.&lt;/p&gt;
&lt;p&gt;In my experience, using regular expressions on source code was never a good idea. I wished that there was a better way to do checks like this one during the build. I figured that someone must have already solved this problem and so I started looking for solutions.&lt;/p&gt;
&lt;h2 id=&quot;could-it-be-jshint%3F&quot; tabindex=&quot;-1&quot;&gt;Could it be JSHint?&lt;/h2&gt;
&lt;p&gt;The first thing I did was email the maintainer of JSHint at that time, Anton Kovalyov[1]. I had remembered reading a blog post[2] that said JSHint was planning to support plugins but couldn’t find any information about that feature being implemented. From past experience contributing to JSHint and from modifying JSLint for a project at Yahoo, I knew JSHint hadn’t initially been setup to support plugins, and without formal support there wouldn’t be an easy way to modify JSHint to do what I wanted.&lt;/p&gt;
&lt;p&gt;Anton informed me that the plugin proposal had stalled and didn’t look like it would be implemented. I was disappointed, as this seemed like the most direct path to solving the problem. I thanked him and asked him to please not be offended if I create a linter that did what I needed. I wanted to support JSHint, but I felt like this was a problem that needed to be solved with JSHint or without it.&lt;/p&gt;
&lt;h2 id=&quot;the-inspiration&quot; tabindex=&quot;-1&quot;&gt;The inspiration&lt;/h2&gt;
&lt;p&gt;After digging around in the build system at Box, I found there was actually a PHP linter running in addition to the makeshift JavaScript linter. The PHP linter, however, was a lot more involved that the JavaScript one. Instead of using regular expressions, the PHP linter parsed the code into an abstract syntax tree (AST) and then inspected the AST for the patterns to report.&lt;/p&gt;
&lt;p&gt;I was probably shaking my head “yes” as I read through that code. Immediately I realized that this was exactly what I needed to do for JavaScript. If only there was some way to parse JavaScript into an AST and then inspect the AST for problems.&lt;/p&gt;
&lt;h2 id=&quot;the-groundwork&quot; tabindex=&quot;-1&quot;&gt;The groundwork&lt;/h2&gt;
&lt;p&gt;With all of this floating around in my brain, I invited Ariya Hidayat[3] to give a talk at Box about whatever topic he pleased. It just so happened that he gave a talk on Esprima[4], the JavaScript parser he wrote in JavaScript. During that talk, Ariya discussed why having an AST representation of JavaScript was useful and referenced several already-existing tools built on top of Esprima. Among those tools were estraverse for traversing the AST and escope for scope analysis, both written by Yusuke Suzuki.&lt;/p&gt;
&lt;p&gt;As Ariya continued talking and giving examples of the types of problems an AST can solve, the idea for a new tool formed in my head. It made sense to me that there should be one tool that could perform all of the evaluations Ariya mentioned. After all, they are all just using the AST for different purposes. Why not have one AST they all can use?&lt;/p&gt;
&lt;h2 id=&quot;the-beginning&quot; tabindex=&quot;-1&quot;&gt;The beginning&lt;/h2&gt;
&lt;p&gt;Thanks largely to the availability of Esprima, estraverse, and escope, I was able to put together the first prototype of ESLint over a couple of weekends. To me, these three utilities represented everything that I needed to create a new tool that could easily find problem patterns in JavaScript code. If I had to create those from scratch, I have no doubt that ESLint would not exist today. Building on top of those tools, I was able to iterate quickly, and eventually, the tool you know today as ESLint was born.&lt;/p&gt;
&lt;p&gt;(I feel it’s important to point out that I was not the only one looking to create an AST-based linter at the time. JSCS[5] was also under development at around the same time, and current ESLint maintainer Ilya Volodin was working on his own project before discovering ESLint. If I had not come up with something like ESLint then someone else undoubtedly would have. All of the pieces were already out there thanks to Ariya and Yusuke, someone just had to put them together in a useful way.)&lt;/p&gt;
&lt;h2 id=&quot;references&quot; tabindex=&quot;-1&quot;&gt;References&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://www.antonkovalyov.com/&quot;&gt;Anton Kovalyov&lt;/a&gt; (&lt;a href=&quot;http://antonkovalyov.com/&quot;&gt;antonkovalyov.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jshint.com/blog/jshint-3-plans/&quot;&gt;JSHint 3 Plans&lt;/a&gt; (&lt;a href=&quot;http://jshint.com/&quot;&gt;jshint.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ariya.io/&quot;&gt;Ariya Hidayat&lt;/a&gt; (&lt;a href=&quot;http://ariya.io/&quot;&gt;ariya.io&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/ariya/javascript-code-analysis&quot;&gt;JavaScript Code Analysis&lt;/a&gt; (&lt;a href=&quot;http://speakerdeck.com/&quot;&gt;speakerdeck.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://jscs.info/&quot;&gt;JSCS&lt;/a&gt; (&lt;a href=&quot;http://jscs.info/&quot;&gt;jscs.info&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.2.0 released</title>
    <link href="https://eslint.org/blog/2021/11/eslint-v8.2.0-released/"/>
    <updated>2021-11-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/11/eslint-v8.2.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9fefd2e40348b3e02b855597707a557dc4991d5&quot;&gt;&lt;code&gt;c9fefd2&lt;/code&gt;&lt;/a&gt; feat: report class evaluation TDZ errors in &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;no-use-before-define&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15134&quot;&gt;#15134&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c415c041912a3abbf106cc5713bdcf4ef42590ac&quot;&gt;&lt;code&gt;c415c04&lt;/code&gt;&lt;/a&gt; docs: Use string rule severity in CLI examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15253&quot;&gt;#15253&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12b627da401c68a5081822a49068421f1bb2465c&quot;&gt;&lt;code&gt;12b627d&lt;/code&gt;&lt;/a&gt; docs: fix typo in &lt;code&gt;working-with-rules.md&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15233&quot;&gt;#15233&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a86ffc076014d1de7eefc7456a8ccfb3a2318155&quot;&gt;&lt;code&gt;a86ffc0&lt;/code&gt;&lt;/a&gt; docs: fix broken anchor in configuration files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15223&quot;&gt;#15223&lt;/a&gt;) (Pierre Berger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee8af5fb864b510ba6b50dcfb706b8b28fdfb74e&quot;&gt;&lt;code&gt;ee8af5f&lt;/code&gt;&lt;/a&gt; docs: Link to unit tests from rule documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15207&quot;&gt;#15207&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c0ca3c744dd5761d424d19c9cdcccc569dfe34c&quot;&gt;&lt;code&gt;1c0ca3c&lt;/code&gt;&lt;/a&gt; docs: add &lt;code&gt;ci&lt;/code&gt; and &lt;code&gt;perf&lt;/code&gt; tags for commit (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15215&quot;&gt;#15215&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/796587ad950f6804d60473c2b5998ed3ec71c59e&quot;&gt;&lt;code&gt;796587a&lt;/code&gt;&lt;/a&gt; build: upgrade eslint-release to v3.2.0 to support conventional commits (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15246&quot;&gt;#15246&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf5b6be6f8144f5932cdf062d380f7c0f51e64bd&quot;&gt;&lt;code&gt;cf5b6be&lt;/code&gt;&lt;/a&gt; chore: update @eslint/eslintrc to avoid different versions of &lt;code&gt;js-yaml&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15265&quot;&gt;#15265&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fd7a6ca7339bcbbfa6feda266dcca96684b81c6&quot;&gt;&lt;code&gt;4fd7a6c&lt;/code&gt;&lt;/a&gt; perf: don’t prepare a fix for valid code in &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;key-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15239&quot;&gt;#15239&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fda533cda4b70278acfce4e21b5b1ebe52ff7a3d&quot;&gt;&lt;code&gt;fda533c&lt;/code&gt;&lt;/a&gt; chore: update &lt;code&gt;strip-ansi&lt;/code&gt; dependency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15221&quot;&gt;#15221&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67949bd9f3cbda08442d2e5946feb9a4f8b22d85&quot;&gt;&lt;code&gt;67949bd&lt;/code&gt;&lt;/a&gt; ci: Remove Node 16 CI prerelease workaround (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14935&quot;&gt;#14935&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.1.0 released</title>
    <link href="https://eslint.org/blog/2021/10/eslint-v8.1.0-released/"/>
    <updated>2021-10-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/10/eslint-v8.1.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;One new rule has been added: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-private-class-members&quot;&gt;no-unused-private-class-members&lt;/a&gt;. This rule reports unused class private fields, methods and accessors.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#ruletester&quot;&gt;RuleTester&lt;/a&gt; now allows &lt;code&gt;name&lt;/code&gt; property in test case objects. If you specify &lt;code&gt;name&lt;/code&gt;, it will be output instead of the code.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3d370fb3596ccd3463c29f1a7a1e3f321dd8083a&quot;&gt;&lt;code&gt;3d370fb&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-private-class-members&quot;&gt;no-unused-private-class-members&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14859&quot;&gt;#14859&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14895&quot;&gt;#14895&lt;/a&gt;) (Tim van der Lippe)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e926b1735c77bf55abc1150b060a535a6c4e2778&quot;&gt;&lt;code&gt;e926b17&lt;/code&gt;&lt;/a&gt; New: Add name to RuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15179&quot;&gt;#15179&lt;/a&gt;) (Gareth Jones)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d9d84a060362efbaac727f18e3a790098bf0bc4b&quot;&gt;&lt;code&gt;d9d84a0&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; conflict with &lt;a href=&quot;https://eslint.org/docs/rules/space-infix-ops&quot;&gt;space-infix-ops&lt;/a&gt; on &lt;code&gt;&amp;gt;&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14712&quot;&gt;#14712&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15172&quot;&gt;#15172&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1f7ad77e2da00ac7d6daade547fe6bef4ef6003&quot;&gt;&lt;code&gt;a1f7ad7&lt;/code&gt;&lt;/a&gt; Fix: allow &lt;code&gt;baseConfig&lt;/code&gt; to extend preloaded plugin config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/15079&quot;&gt;#15079&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15187&quot;&gt;#15187&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/446b4b3583f90dba7e0ac347b57db013aecc101d&quot;&gt;&lt;code&gt;446b4b3&lt;/code&gt;&lt;/a&gt; Docs: Update commit message format docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15200&quot;&gt;#15200&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0fb3bb2af3301c92ccd46ece739644a17df89bab&quot;&gt;&lt;code&gt;0fb3bb2&lt;/code&gt;&lt;/a&gt; Docs: remove &lt;code&gt;instanceof&lt;/code&gt; from &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15180&quot;&gt;#15180&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/35f3254d5f8027f75a6cb35b58bea10037003be8&quot;&gt;&lt;code&gt;35f3254&lt;/code&gt;&lt;/a&gt; Docs: Describe range in rule docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14162&quot;&gt;#14162&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15174&quot;&gt;#15174&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b32f50460d6858367b25df20b7a717528891e0d&quot;&gt;&lt;code&gt;2b32f50&lt;/code&gt;&lt;/a&gt; Docs: Fix typo in &lt;a href=&quot;http://readme.md/&quot;&gt;README.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15168&quot;&gt;#15168&lt;/a&gt;) (Dmitriy Fishman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2cfbd4bfd90b31cd728d6595bd1e36667715c84d&quot;&gt;&lt;code&gt;2cfbd4b&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/249a04070f88d2c895af3b78d60d2eff2730730e&quot;&gt;&lt;code&gt;249a040&lt;/code&gt;&lt;/a&gt; Upgrade: &lt;code&gt;eslint-plugin-eslint-plugin&lt;/code&gt; to v4 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15169&quot;&gt;#15169&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b87fa835892d9da3b945db763196715d8088090&quot;&gt;&lt;code&gt;1b87fa8&lt;/code&gt;&lt;/a&gt; Build: add node v17 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15193&quot;&gt;#15193&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90a5b6b4aeff7343783f85418c683f2c9901ab07&quot;&gt;&lt;code&gt;90a5b6b&lt;/code&gt;&lt;/a&gt; Chore: improve performance of &lt;code&gt;:function&lt;/code&gt; selector (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15181&quot;&gt;#15181&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/31af1c8770c7dac9e9686a0549af329abe5a795b&quot;&gt;&lt;code&gt;31af1c8&lt;/code&gt;&lt;/a&gt; Chore: fix counting of files in performance test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15190&quot;&gt;#15190&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b5049c89a00f1a0da59ecaee74b9b024ef3c3621&quot;&gt;&lt;code&gt;b5049c8&lt;/code&gt;&lt;/a&gt; Chore: Update stale bot settings (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15173&quot;&gt;#15173&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd58cd4afa6ced9016c091fc99a702c97a3e44f0&quot;&gt;&lt;code&gt;dd58cd4&lt;/code&gt;&lt;/a&gt; Chore: migrate master to main (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15062&quot;&gt;#15062&lt;/a&gt;) (Nitesh Seram)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec0f8e0bb7d7ce502ca68fcd13ac323eb6307455&quot;&gt;&lt;code&gt;ec0f8e0&lt;/code&gt;&lt;/a&gt; Chore: Add stale issue/PR checker (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15151&quot;&gt;#15151&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.0.1 released</title>
    <link href="https://eslint.org/blog/2021/10/eslint-v8.0.1-released/"/>
    <updated>2021-10-13T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/10/eslint-v8.0.1-released/</id>
    <content type="html">&lt;p&gt;This release contains a &lt;a href=&quot;https://github.com/eslint/eslintrc/pull/57&quot;&gt;workaround&lt;/a&gt; that will allow Jest to work with ESLint v8.&lt;/p&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff5fcd4d9bf43354a1b85d1f7ec1c4e1c0e5cbd9&quot;&gt;&lt;code&gt;ff5fcd4&lt;/code&gt;&lt;/a&gt; Docs: add 13 as allowed ecma version (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/15159&quot;&gt;#15159&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15162&quot;&gt;#15162&lt;/a&gt;) (唯然)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9217e527e1c49c6244400c4a58b6d1c14de51db&quot;&gt;&lt;code&gt;f9217e5&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/eslintrc@1.0.3 for Jest workaround (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15164&quot;&gt;#15164&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c584a63e2d6d9c0a66e5c5a5d43bc8148c054f5d&quot;&gt;&lt;code&gt;c584a63&lt;/code&gt;&lt;/a&gt; Chore: add ecmaVersion 13 to types.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15163&quot;&gt;#15163&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.0.0 released</title>
    <link href="https://eslint.org/blog/2021/10/eslint-v8.0.0-released/"/>
    <updated>2021-10-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/10/eslint-v8.0.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;There are several breaking changes in v8.0.0. We’ve created a &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-8.0.0&quot;&gt;migration guide&lt;/a&gt; to explain the breaking changes and describe how to upgrade. In addition, there are several new features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ESLint’s default parser and all core rules now fully support the following ES2022 syntax:
&lt;ul&gt;
&lt;li&gt;Class public instance fields and private instance fields&lt;/li&gt;
&lt;li&gt;Class public static fields and private static fields&lt;/li&gt;
&lt;li&gt;Class private instance methods and accessors&lt;/li&gt;
&lt;li&gt;Class private static methods and accessors&lt;/li&gt;
&lt;li&gt;RegExp match indices&lt;/li&gt;
&lt;li&gt;Top-level &lt;code&gt;await&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Autofix can now remove unused disable directives when &lt;code&gt;--fix&lt;/code&gt; and &lt;code&gt;--report-unused-disable-directives&lt;/code&gt; are used together.&lt;/li&gt;
&lt;li&gt;The use of reserved words as identifiers in ES3 is now &lt;a href=&quot;https://github.com/eslint/eslint/issues/15017&quot;&gt;disallowed&lt;/a&gt;. This change only affects users with default parser configured with &lt;code&gt;{ &amp;quot;ecmaVersion&amp;quot;: 3 }&lt;/code&gt; in parser options.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/8.0.0/rules/class-methods-use-this&quot;&gt;&lt;code&gt;class-methods-use-this&lt;/code&gt;&lt;/a&gt; rule has a new &lt;code&gt;enforceForClassFields&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/8.0.0/rules/max-classes-per-file&quot;&gt;&lt;code&gt;max-classes-per-file&lt;/code&gt;&lt;/a&gt; rule has a new &lt;code&gt;ignoreExpressions&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;meta.docs.category&lt;/code&gt; property has been removed from all core rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7cf96cf185f849d379b660072d660ec35ac5b46d&quot;&gt;&lt;code&gt;7cf96cf&lt;/code&gt;&lt;/a&gt; Breaking: Disallow reserved words in ES3 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/15017&quot;&gt;#15017&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15046&quot;&gt;#15046&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/305e14af8bd12afc01487abee5c9b0f3eaca989e&quot;&gt;&lt;code&gt;305e14a&lt;/code&gt;&lt;/a&gt; Breaking: remove meta.docs.category in core rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13398&quot;&gt;#13398&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14594&quot;&gt;#14594&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24c9f2ac57efcd699ca69695c82e51ce5742df7b&quot;&gt;&lt;code&gt;24c9f2a&lt;/code&gt;&lt;/a&gt; Breaking: Strict package exports (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13654&quot;&gt;#13654&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14706&quot;&gt;#14706&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86d31a4951e3a39e359e284f5fe336ac477369fe&quot;&gt;&lt;code&gt;86d31a4&lt;/code&gt;&lt;/a&gt; Breaking: disallow SourceCode#getComments() in RuleTester (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14744&quot;&gt;#14744&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14769&quot;&gt;#14769&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d2213deb69c5901c1950bbe648aa819e7e742ed&quot;&gt;&lt;code&gt;1d2213d&lt;/code&gt;&lt;/a&gt; Breaking: Fixable disable directives (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11815&quot;&gt;#11815&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14617&quot;&gt;#14617&lt;/a&gt;) (Josh Goldberg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4a7aab7d4323ff7027eebca709d4e95a9aaa80bc&quot;&gt;&lt;code&gt;4a7aab7&lt;/code&gt;&lt;/a&gt; Breaking: require &lt;code&gt;meta&lt;/code&gt; for fixable rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13349&quot;&gt;#13349&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14634&quot;&gt;#14634&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6a761f9b6582e9f71705161be827ca303ef183f&quot;&gt;&lt;code&gt;d6a761f&lt;/code&gt;&lt;/a&gt; Breaking: Require &lt;code&gt;meta.hasSuggestions&lt;/code&gt; for rules with suggestions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14573&quot;&gt;#14573&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6bd747b5b7731195224875b952a9ea61445a9938&quot;&gt;&lt;code&gt;6bd747b&lt;/code&gt;&lt;/a&gt; Breaking: support new regex d flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14640&quot;&gt;#14640&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14653&quot;&gt;#14653&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b4f3abdb794feb3be31959bb44bfb0ef6318e8e&quot;&gt;&lt;code&gt;8b4f3ab&lt;/code&gt;&lt;/a&gt; Breaking: fix &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; schema (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13739&quot;&gt;#13739&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14030&quot;&gt;#14030&lt;/a&gt;) (Joakim Nilsson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b953a4ee12f120658a9ec27d1f8ca88dd3dfb599&quot;&gt;&lt;code&gt;b953a4e&lt;/code&gt;&lt;/a&gt; Breaking: upgrade espree and support new class features (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14343&quot;&gt;#14343&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14591&quot;&gt;#14591&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8cce06cb39886902ce0d2e6882f46c3bf52fb955&quot;&gt;&lt;code&gt;8cce06c&lt;/code&gt;&lt;/a&gt; Breaking: add some rules to eslint:recommended (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14673&quot;&gt;#14673&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14691&quot;&gt;#14691&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86bb63b370e0ff350e988a5fa228a8234abe800c&quot;&gt;&lt;code&gt;86bb63b&lt;/code&gt;&lt;/a&gt; Breaking: Drop &lt;code&gt;codeframe&lt;/code&gt; and &lt;code&gt;table&lt;/code&gt; formatters (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14316&quot;&gt;#14316&lt;/a&gt;) (Federico Brigante)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f3cb3208c8952a6218d54658cfda85942b9fda42&quot;&gt;&lt;code&gt;f3cb320&lt;/code&gt;&lt;/a&gt; Breaking: drop node v10/v13/v15 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14023&quot;&gt;#14023&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14592&quot;&gt;#14592&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67c0074fa843fab629f464ff875007a8ee33cc7f&quot;&gt;&lt;code&gt;67c0074&lt;/code&gt;&lt;/a&gt; Update: Suggest missing rule in flat config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14027&quot;&gt;#14027&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15074&quot;&gt;#15074&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf34e5cf5ed5d09eb53c16cca06821c4e34b7b70&quot;&gt;&lt;code&gt;cf34e5c&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/space-before-blocks&quot;&gt;space-before-blocks&lt;/a&gt; ignore after switch colons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/15082&quot;&gt;#15082&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15093&quot;&gt;#15093&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14a4739ab2233acef995a6dde233de05d067a0f3&quot;&gt;&lt;code&gt;14a4739&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-new-func&quot;&gt;&lt;code&gt;no-new-func&lt;/code&gt;&lt;/a&gt; rule catching eval case of &lt;code&gt;MemberExpression&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14860&quot;&gt;#14860&lt;/a&gt;) (Mojtaba Samimi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a1a850575ca75db017051abe5e931f0f9c8012b&quot;&gt;&lt;code&gt;0a1a850&lt;/code&gt;&lt;/a&gt; Update: include &lt;code&gt;ruleId&lt;/code&gt; in error logs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/15037&quot;&gt;#15037&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15053&quot;&gt;#15053&lt;/a&gt;) (Ari Perkkiö)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88a39520716bdd11f8647e47c57bd8bf91bc7148&quot;&gt;&lt;code&gt;88a3952&lt;/code&gt;&lt;/a&gt; Update: support class fields in the &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;&lt;code&gt;complexity&lt;/code&gt;&lt;/a&gt; rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14957&quot;&gt;#14957&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d1ccb676fedd1ceb4b1e44abf8133f116a5aecb&quot;&gt;&lt;code&gt;6d1ccb6&lt;/code&gt;&lt;/a&gt; Update: enforceForClassFields in &lt;a href=&quot;https://eslint.org/docs/rules/class-methods-use-this&quot;&gt;class-methods-use-this&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15018&quot;&gt;#15018&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd109379f730a988a9e6c0102bcfe443ad0b4b94&quot;&gt;&lt;code&gt;dd10937&lt;/code&gt;&lt;/a&gt; Update: added ignoreExpressions option to &lt;a href=&quot;https://eslint.org/docs/rules/max-classes-per-file&quot;&gt;max-classes-per-file&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15000&quot;&gt;#15000&lt;/a&gt;) (Josh Goldberg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05ca24c57f90f91421b682dca3d7a45b7957fb77&quot;&gt;&lt;code&gt;05ca24c&lt;/code&gt;&lt;/a&gt; Update: Code path analysis for class fields (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14343&quot;&gt;#14343&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14886&quot;&gt;#14886&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/44c6fc879de61e9513835d1d4d6ae978d9a43c51&quot;&gt;&lt;code&gt;44c6fc8&lt;/code&gt;&lt;/a&gt; Update: support class fields in &lt;a href=&quot;https://eslint.org/docs/rules/func-name-matching&quot;&gt;func-name-matching&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14964&quot;&gt;#14964&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3d7d5fb32425e8c04d3eaa0107a2ab03a2e285df&quot;&gt;&lt;code&gt;3d7d5fb&lt;/code&gt;&lt;/a&gt; Update: reporting loc for &lt;code&gt;never&lt;/code&gt; option in &lt;a href=&quot;https://eslint.org/docs/rules/eol-last&quot;&gt;&lt;code&gt;eol-last&lt;/code&gt;&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14840&quot;&gt;#14840&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f110926a7abcc875a86dd13116f794e4f950e2ba&quot;&gt;&lt;code&gt;f110926&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; false negative with comma operator (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14928&quot;&gt;#14928&lt;/a&gt;) (Sachin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26b0cd924e79a0ab2374c0cd813e92055f9fff7b&quot;&gt;&lt;code&gt;26b0cd9&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-unreachable&quot;&gt;no-unreachable&lt;/a&gt; logic for class fields (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14920&quot;&gt;#14920&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9052eee07a459dc059cd92f657a3ae73acc95bb5&quot;&gt;&lt;code&gt;9052eee&lt;/code&gt;&lt;/a&gt; Update: check class fields in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14906&quot;&gt;#14906&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2174a6f0e5d18b673604d31e3ca7b790cdc9429b&quot;&gt;&lt;code&gt;2174a6f&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;require-atomic-updates&lt;/a&gt; property assignment message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/15076&quot;&gt;#15076&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15109&quot;&gt;#15109&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9efb5f91937dcb6c8f3d7cb2f59940046d77901&quot;&gt;&lt;code&gt;c9efb5f&lt;/code&gt;&lt;/a&gt; Fix: preserve formatting when rules are removed from disable directives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15081&quot;&gt;#15081&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9bd3d87c8d7369e85f2b7d9b784fed8143191d30&quot;&gt;&lt;code&gt;9bd3d87&lt;/code&gt;&lt;/a&gt; Fix: semicolon-less style in &lt;a href=&quot;https://eslint.org/docs/rules/lines-between-class-members&quot;&gt;lines-between-class-members&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15045&quot;&gt;#15045&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f966fe6286b6f668812f5155b79d4ee2a8b584b3&quot;&gt;&lt;code&gt;f966fe6&lt;/code&gt;&lt;/a&gt; Fix: Update &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;semi&lt;/a&gt; for class-fields (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14945&quot;&gt;#14945&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e9764f3e2fe3f7b6341c9a4381f0dcd23548338e&quot;&gt;&lt;code&gt;e9764f3&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-undef-init&quot;&gt;no-undef-init&lt;/a&gt; should not apply to class fields (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14994&quot;&gt;#14994&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3409785a41a5bd2b128ed11b8baf7a59f9e412ee&quot;&gt;&lt;code&gt;3409785&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; ignoreGlobals shouldn’t apply to undef vars (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14966&quot;&gt;#14966&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee1b54f31fa840e6ec72a313aa4090fdd3e985cd&quot;&gt;&lt;code&gt;ee1b54f&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; private name compat (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14946&quot;&gt;#14946&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af965848c010612c3e136c367cc9b9e2e822f580&quot;&gt;&lt;code&gt;af96584&lt;/code&gt;&lt;/a&gt; Fix: handle computed class fields in &lt;a href=&quot;https://eslint.org/docs/rules/operator-linebreak&quot;&gt;operator-linebreak&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14915&quot;&gt;#14915&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a773b99873965652a86bec489193dc42a8923f5f&quot;&gt;&lt;code&gt;a773b99&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;no-useless-computed-key&lt;/a&gt; edge cases with class fields (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14903&quot;&gt;#14903&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cbc43daad2ea229fb15a9198efd2bc2721dfb75f&quot;&gt;&lt;code&gt;cbc43da&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; PrivateIdentifier false positive (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14897&quot;&gt;#14897&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ccb9a9138acd63457e004630475495954c1be6f4&quot;&gt;&lt;code&gt;ccb9a91&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/dot-notation&quot;&gt;dot-notation&lt;/a&gt; false positive with private identifier (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14898&quot;&gt;#14898&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f885fe06a0a79d91fc72a132fd31edf9ef0502cd&quot;&gt;&lt;code&gt;f885fe0&lt;/code&gt;&lt;/a&gt; Docs: add note and example for extending the range of fix (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13706&quot;&gt;#13706&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13748&quot;&gt;#13748&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3da1509106f508f0eb8ba48cdfc666225fda7edc&quot;&gt;&lt;code&gt;3da1509&lt;/code&gt;&lt;/a&gt; Docs: Add jsdoc &lt;code&gt;type&lt;/code&gt; annotation to sample rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15085&quot;&gt;#15085&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68a49a9446c3286bb9ff24b90713c794b7e1f6f5&quot;&gt;&lt;code&gt;68a49a9&lt;/code&gt;&lt;/a&gt; Docs: Update Rollup Integrations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15142&quot;&gt;#15142&lt;/a&gt;) (xiaohai)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d867f8100737bb82742debee2b5dc853c5f07c91&quot;&gt;&lt;code&gt;d867f81&lt;/code&gt;&lt;/a&gt; Docs: Remove a dot from &lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;curly&lt;/a&gt; link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15128&quot;&gt;#15128&lt;/a&gt;) (Mauro Murru)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d654f115f6e05b59c85434e75cf68204b976f22&quot;&gt;&lt;code&gt;2d654f1&lt;/code&gt;&lt;/a&gt; Docs: add example .eslintrc.json (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15087&quot;&gt;#15087&lt;/a&gt;) (Nicolas Mattia)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16034f09ae6c7a78b8268b4c859928f18de7b9d6&quot;&gt;&lt;code&gt;16034f0&lt;/code&gt;&lt;/a&gt; Docs: fix fixable example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15107&quot;&gt;#15107&lt;/a&gt;) (QiChang Li)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f2346b40ffd0d470092e52b995d7ab2648089db&quot;&gt;&lt;code&gt;7f2346b&lt;/code&gt;&lt;/a&gt; Docs: Update release blog post template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15094&quot;&gt;#15094&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a744dfa1f077afe406014f84135f8d26e9a12a94&quot;&gt;&lt;code&gt;a744dfa&lt;/code&gt;&lt;/a&gt; Docs: Update CLA info (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15058&quot;&gt;#15058&lt;/a&gt;) (Brian Warner)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/91e82f5c4cfeab5ac6d01865ce0eb9ea0649df39&quot;&gt;&lt;code&gt;91e82f5&lt;/code&gt;&lt;/a&gt; Docs: LintMessage.line and column are possibly undefined (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15032&quot;&gt;#15032&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd5663166a8235512e797522731af1e9651f9392&quot;&gt;&lt;code&gt;dd56631&lt;/code&gt;&lt;/a&gt; Docs: remove duplicate code path analysis document (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15033&quot;&gt;#15033&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c61f5ac67682fcfec7fc6faafcf72e4b1a339ff&quot;&gt;&lt;code&gt;8c61f5a&lt;/code&gt;&lt;/a&gt; Docs: add info about non-capturing groups to &lt;a href=&quot;https://eslint.org/docs/rules/prefer-named-capture-group&quot;&gt;prefer-named-capture-group&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15009&quot;&gt;#15009&lt;/a&gt;) (Andrzej Wódkiewicz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4338b74767fa71e4e8d171f8503aa33d970e509f&quot;&gt;&lt;code&gt;4338b74&lt;/code&gt;&lt;/a&gt; Docs: add &lt;a href=&quot;https://eslint.org/docs/rules/no-dupe-class-members&quot;&gt;no-dupe-class-members&lt;/a&gt; examples with class fields (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15005&quot;&gt;#15005&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88b4e3d191c2577e2e1a283cc5f825feea6271cc&quot;&gt;&lt;code&gt;88b4e3d&lt;/code&gt;&lt;/a&gt; Docs: Make clear how rule options are overridden (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14962&quot;&gt;#14962&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14976&quot;&gt;#14976&lt;/a&gt;) (Jake Ob)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4165c7f937f5fc46d4209ae8f763238d73f37238&quot;&gt;&lt;code&gt;4165c7f&lt;/code&gt;&lt;/a&gt; Docs: Clarify Linter vs ESLint in node.js api docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14953&quot;&gt;#14953&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14995&quot;&gt;#14995&lt;/a&gt;) (Brian Bartels)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/80cfb8f858888bddfefd7de6b4ecbf5aabe267bc&quot;&gt;&lt;code&gt;80cfb8f&lt;/code&gt;&lt;/a&gt; Docs: fix typo in migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14985&quot;&gt;#14985&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/396a0e3c7c82e5d2680d07250008094f336856db&quot;&gt;&lt;code&gt;396a0e3&lt;/code&gt;&lt;/a&gt; Docs: update ScopeManager with class fields (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14974&quot;&gt;#14974&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6663e7aed498a73108b5e6371f218d9411b87796&quot;&gt;&lt;code&gt;6663e7a&lt;/code&gt;&lt;/a&gt; Docs: remove &lt;code&gt;docs&lt;/code&gt; script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14288&quot;&gt;#14288&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14971&quot;&gt;#14971&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/44f7de5ee4d934dee540d3d55305126c670f6bfc&quot;&gt;&lt;code&gt;44f7de5&lt;/code&gt;&lt;/a&gt; Docs: Update deprecated information (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14961&quot;&gt;#14961&lt;/a&gt;) (TagawaHirotaka)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8bcef70a4a6b1fbb2007075bed754635f27ff01&quot;&gt;&lt;code&gt;a8bcef7&lt;/code&gt;&lt;/a&gt; Docs: Add 2021 and 2022 to supported ECMAScript versions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14952&quot;&gt;#14952&lt;/a&gt;) (coderaiser)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b301069981dc1dcca51df2813dcebdca8c150502&quot;&gt;&lt;code&gt;b301069&lt;/code&gt;&lt;/a&gt; Docs: fix ‘When Not To Use’ in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-named-capture-group&quot;&gt;prefer-named-capture-group&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14959&quot;&gt;#14959&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14969&quot;&gt;#14969&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e98f14d356b5ff934dd2a0a1fb226f1b15317ab3&quot;&gt;&lt;code&gt;e98f14d&lt;/code&gt;&lt;/a&gt; Docs: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-globals&quot;&gt;no-implicit-globals&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14954&quot;&gt;#14954&lt;/a&gt;) (jwbth)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81c60f4a8725738f191580646562d1dca7eee933&quot;&gt;&lt;code&gt;81c60f4&lt;/code&gt;&lt;/a&gt; Docs: document ESLint api (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14934&quot;&gt;#14934&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28fe19c4a9108111932966aa7c9f361c26601d70&quot;&gt;&lt;code&gt;28fe19c&lt;/code&gt;&lt;/a&gt; Docs: Add v8.0.0 migration guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14856&quot;&gt;#14856&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14884&quot;&gt;#14884&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f5d0889264c60dddb6fb07a3b1e43f840e84d57&quot;&gt;&lt;code&gt;1f5d088&lt;/code&gt;&lt;/a&gt; Docs: add an example &lt;code&gt;Object.assign()&lt;/code&gt; for rule &lt;a href=&quot;https://eslint.org/docs/rules/no-import-assign&quot;&gt;no-import-assign&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14916&quot;&gt;#14916&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4e58023f22381508babfc52087853b5e3965b9c&quot;&gt;&lt;code&gt;c4e5802&lt;/code&gt;&lt;/a&gt; Docs: improve rule details for &lt;a href=&quot;https://eslint.org/docs/rules/no-console&quot;&gt;&lt;code&gt;no-console&lt;/code&gt;&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14793&quot;&gt;#14793&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14901&quot;&gt;#14901&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c3a47072aeb5cfda40a1eb20b43a10c5ca7aab3&quot;&gt;&lt;code&gt;5c3a470&lt;/code&gt;&lt;/a&gt; Docs: add class fields in &lt;a href=&quot;https://eslint.org/docs/rules/no-multi-assign&quot;&gt;no-multi-assign&lt;/a&gt; documentation (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14907&quot;&gt;#14907&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d234d890b383837f8e4bda0f6ce1e2a348f9835e&quot;&gt;&lt;code&gt;d234d89&lt;/code&gt;&lt;/a&gt; Docs: add class fields in &lt;a href=&quot;https://eslint.org/docs/rules/func-names&quot;&gt;func-names&lt;/a&gt; documentation (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14908&quot;&gt;#14908&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e037d61a12ad17a36e05dcf65aa63fad303c79b9&quot;&gt;&lt;code&gt;e037d61&lt;/code&gt;&lt;/a&gt; Docs: Mention workaround for escaping the slash character in selectors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14675&quot;&gt;#14675&lt;/a&gt;) (Aria)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81f03b6ad69c7f67ad6ba72e02e73266aa8f7696&quot;&gt;&lt;code&gt;81f03b6&lt;/code&gt;&lt;/a&gt; Docs: Update license copyright (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14877&quot;&gt;#14877&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d3f7f01281671c4761f8da0d3ae9882a38eca8a&quot;&gt;&lt;code&gt;7d3f7f0&lt;/code&gt;&lt;/a&gt; Upgrade: unfrozen @eslint/eslintrc (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/15036&quot;&gt;#15036&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15146&quot;&gt;#15146&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e5c2e853ace560876c2f2119e134639be8659d0&quot;&gt;&lt;code&gt;9e5c2e8&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/eslintrc@1.0.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15047&quot;&gt;#15047&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec9db63e53a6605a558dcd82947d2425f89887c3&quot;&gt;&lt;code&gt;ec9db63&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/eslintrc@1.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14865&quot;&gt;#14865&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62c6fe7d10ff4eeebd196e143f96cfd88818393d&quot;&gt;&lt;code&gt;62c6fe7&lt;/code&gt;&lt;/a&gt; Upgrade: Debug 4.0.1 &amp;gt; 4.3.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14892&quot;&gt;#14892&lt;/a&gt;) (sandesh bafna)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88db3f54988dddfbda35764ecf1ea16354c4213a&quot;&gt;&lt;code&gt;88db3f5&lt;/code&gt;&lt;/a&gt; Upgrade: &lt;code&gt;js-yaml&lt;/code&gt; to v4 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14890&quot;&gt;#14890&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae6072b1de5c8b30ce6c58290852082439c40b30&quot;&gt;&lt;code&gt;ae6072b&lt;/code&gt;&lt;/a&gt; Upgrade: &lt;code&gt;eslint-visitor-keys&lt;/code&gt; to v3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14902&quot;&gt;#14902&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e53d8cf9d73bd105cf6ba4f6b5477ccc4b980939&quot;&gt;&lt;code&gt;e53d8cf&lt;/code&gt;&lt;/a&gt; Upgrade: &lt;code&gt;markdownlint&lt;/code&gt; dev dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14883&quot;&gt;#14883&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d66e9414be60e05badb96bc3e1a55ca34636d7f8&quot;&gt;&lt;code&gt;d66e941&lt;/code&gt;&lt;/a&gt; Upgrade: @humanwhocodes/config-array to 0.6 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14891&quot;&gt;#14891&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71faa38adada4bd2f1ec0da7e45e6c7c84d1671d&quot;&gt;&lt;code&gt;71faa38&lt;/code&gt;&lt;/a&gt; Build: changelog update for 8.0.0-rc.0 (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d148ffdec385e832956c748e36941e598b57b031&quot;&gt;&lt;code&gt;d148ffd&lt;/code&gt;&lt;/a&gt; Build: changelog update for 8.0.0-beta.2 (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95cc61e40a89aa2278ae93ae2f35c38737280abb&quot;&gt;&lt;code&gt;95cc61e&lt;/code&gt;&lt;/a&gt; Build: changelog update for 8.0.0-beta.1 (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c74fe08642c30e1a4cd4e0866251a2d29466add8&quot;&gt;&lt;code&gt;c74fe08&lt;/code&gt;&lt;/a&gt; Build: Force prerelease peer dep for Node 16 in CI (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14933&quot;&gt;#14933&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/027165cacf62ab1662f4c343ff30b235fd9d46b8&quot;&gt;&lt;code&gt;027165c&lt;/code&gt;&lt;/a&gt; Build: changelog update for 8.0.0-beta.0 (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8b2d5553b0de23e8b72ee45949650cd5f9a10d2&quot;&gt;&lt;code&gt;b8b2d55&lt;/code&gt;&lt;/a&gt; Build: add codeql (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14729&quot;&gt;#14729&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fabdf8a4e2f82b5fe2f903f015c3e60747a0b143&quot;&gt;&lt;code&gt;fabdf8a&lt;/code&gt;&lt;/a&gt; Chore: Remove &lt;code&gt;target.all&lt;/code&gt; from &lt;code&gt;Makefile.js&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15088&quot;&gt;#15088&lt;/a&gt;) (Hirotaka Tagawa / wafuwafu13)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05d7140d46e2b5300d4dc9a60450eed956c95420&quot;&gt;&lt;code&gt;05d7140&lt;/code&gt;&lt;/a&gt; Chore: document target global in Makefile.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15084&quot;&gt;#15084&lt;/a&gt;) (Hirotaka Tagawa / wafuwafu13)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/47be8003d700bc0606495ae42610eaba94e639c5&quot;&gt;&lt;code&gt;47be800&lt;/code&gt;&lt;/a&gt; Chore: test Property &amp;gt; .key with { a = 1 } pattern (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14799&quot;&gt;#14799&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15072&quot;&gt;#15072&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9fb0f7040759ea23538997648f2d2d53e7c9db8a&quot;&gt;&lt;code&gt;9fb0f70&lt;/code&gt;&lt;/a&gt; Chore: fix bug report template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15061&quot;&gt;#15061&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f87e199e988f42fc490890eee0642d86c48c85ff&quot;&gt;&lt;code&gt;f87e199&lt;/code&gt;&lt;/a&gt; Chore: Cleanup issue templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15039&quot;&gt;#15039&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/921ba1ee53e5f2219f09050565b8d69fab517d72&quot;&gt;&lt;code&gt;921ba1e&lt;/code&gt;&lt;/a&gt; Chore: fix failing cli test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15041&quot;&gt;#15041&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/143a5987f18f063a47a0646fa1e10e0f88602f6f&quot;&gt;&lt;code&gt;143a598&lt;/code&gt;&lt;/a&gt; Chore: Switch issues to use forms (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15024&quot;&gt;#15024&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4232d47f88611c68a6c0f915b092b68845ecbaf&quot;&gt;&lt;code&gt;b4232d4&lt;/code&gt;&lt;/a&gt; Chore: Add test that deprecated rules display a deprecated notice (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14989&quot;&gt;#14989&lt;/a&gt;) (TagawaHirotaka)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db1518374a5e88efedf1ed4609d879f3091af74f&quot;&gt;&lt;code&gt;db15183&lt;/code&gt;&lt;/a&gt; Chore: Refactor comments of tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14956&quot;&gt;#14956&lt;/a&gt;) (TagawaHirotaka)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a79c9f35d665c2bcc63267bdf359a8176e0a84ce&quot;&gt;&lt;code&gt;a79c9f3&lt;/code&gt;&lt;/a&gt; Chore: Enforce jsdoc check-line-alignment never (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14955&quot;&gt;#14955&lt;/a&gt;) (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d18db6278320fb97bc8e0bff3518c790566a6a6&quot;&gt;&lt;code&gt;2d18db6&lt;/code&gt;&lt;/a&gt; Chore: add test for merging &lt;code&gt;parserOptions&lt;/code&gt; in Linter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14948&quot;&gt;#14948&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a4ae3b68a1afd9483d331997635727fb19a1a99&quot;&gt;&lt;code&gt;9a4ae3b&lt;/code&gt;&lt;/a&gt; Chore: Apply comment require-description and check ClassDeclaration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14949&quot;&gt;#14949&lt;/a&gt;) (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8344675c309a359dd2af5afddba6122f5dc803d0&quot;&gt;&lt;code&gt;8344675&lt;/code&gt;&lt;/a&gt; Chore: fix small typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14951&quot;&gt;#14951&lt;/a&gt;) (Sosuke Suzuki)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58840ac844a61c72eabb603ecfb761812b82a7ed&quot;&gt;&lt;code&gt;58840ac&lt;/code&gt;&lt;/a&gt; Chore: Update jsdoc plugin and tweak rules in effect (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14814&quot;&gt;#14814&lt;/a&gt;) (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/be334f9d8633e9d193dcb8b36f484547e9d3ab97&quot;&gt;&lt;code&gt;be334f9&lt;/code&gt;&lt;/a&gt; Chore: Fix Makefile call to linter.getRules() (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14932&quot;&gt;#14932&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c86b68a6e2435eb03b681b51b099b552b521adc&quot;&gt;&lt;code&gt;0c86b68&lt;/code&gt;&lt;/a&gt; Chore: Replace old syntax for Array flat/flatMap (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14614&quot;&gt;#14614&lt;/a&gt;) (Stephen Wade)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a89f3f7b6a3edb3465952521bdf06a220515b95&quot;&gt;&lt;code&gt;6a89f3f&lt;/code&gt;&lt;/a&gt; Chore: ignore &lt;code&gt;yarn-error.log&lt;/code&gt; and &lt;code&gt;.pnpm-debug.log&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14925&quot;&gt;#14925&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3b6cd8934b3640ffb6fa49b471babf07f0ad769a&quot;&gt;&lt;code&gt;3b6cd89&lt;/code&gt;&lt;/a&gt; Chore: Add rel/abs path tests in &lt;code&gt;no-restricted-{imports/modules}&lt;/code&gt; rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14910&quot;&gt;#14910&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f98451584a82e41f82ceacd484ea0fe90aa9ce63&quot;&gt;&lt;code&gt;f984515&lt;/code&gt;&lt;/a&gt; Chore: add assertions on reporting location in &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;&lt;code&gt;semi&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14899&quot;&gt;#14899&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/149230ce7e296c029a0b6c085216fc0360ed4c65&quot;&gt;&lt;code&gt;149230c&lt;/code&gt;&lt;/a&gt; Chore: Specify Node 14.x for Verify Files CI job (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14896&quot;&gt;#14896&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/537cf6a0e78ee9b7167e7f8c56f4053d3fb5b2d7&quot;&gt;&lt;code&gt;537cf6a&lt;/code&gt;&lt;/a&gt; Chore: update &lt;code&gt;glob-parent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14879&quot;&gt;#14879&lt;/a&gt;)(&lt;a href=&quot;https://github.com/eslint/eslint/issues/14887&quot;&gt;#14887&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7b4a3f6a44e167c71985d373f73eebd3a4d9556&quot;&gt;&lt;code&gt;f7b4a3f&lt;/code&gt;&lt;/a&gt; Chore: update dev deps to latest (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14624&quot;&gt;#14624&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.0.0-rc.0 released</title>
    <link href="https://eslint.org/blog/2021/09/eslint-v8.0.0-rc.0-released/"/>
    <updated>2021-09-24T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/09/eslint-v8.0.0-rc.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;p&gt;This version of ESLint is provided to gather feedback from the community before releasing the final version. Please try it and report any unexpected issues.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@8.0.0-rc.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/8.0.0/user-guide/migrating-to-8.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67c0074fa843fab629f464ff875007a8ee33cc7f&quot;&gt;&lt;code&gt;67c0074&lt;/code&gt;&lt;/a&gt; Update: Suggest missing rule in flat config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14027&quot;&gt;#14027&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15074&quot;&gt;#15074&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf34e5cf5ed5d09eb53c16cca06821c4e34b7b70&quot;&gt;&lt;code&gt;cf34e5c&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/space-before-blocks&quot;&gt;space-before-blocks&lt;/a&gt; ignore after switch colons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/15082&quot;&gt;#15082&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15093&quot;&gt;#15093&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14a4739ab2233acef995a6dde233de05d067a0f3&quot;&gt;&lt;code&gt;14a4739&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-new-func&quot;&gt;&lt;code&gt;no-new-func&lt;/code&gt;&lt;/a&gt; rule catching eval case of &lt;code&gt;MemberExpression&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14860&quot;&gt;#14860&lt;/a&gt;) (Mojtaba Samimi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a1a850575ca75db017051abe5e931f0f9c8012b&quot;&gt;&lt;code&gt;0a1a850&lt;/code&gt;&lt;/a&gt; Update: include &lt;code&gt;ruleId&lt;/code&gt; in error logs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/15037&quot;&gt;#15037&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15053&quot;&gt;#15053&lt;/a&gt;) (Ari Perkkiö)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9efb5f91937dcb6c8f3d7cb2f59940046d77901&quot;&gt;&lt;code&gt;c9efb5f&lt;/code&gt;&lt;/a&gt; Fix: preserve formatting when rules are removed from disable directives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15081&quot;&gt;#15081&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f2346b40ffd0d470092e52b995d7ab2648089db&quot;&gt;&lt;code&gt;7f2346b&lt;/code&gt;&lt;/a&gt; Docs: Update release blog post template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15094&quot;&gt;#15094&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a744dfa1f077afe406014f84135f8d26e9a12a94&quot;&gt;&lt;code&gt;a744dfa&lt;/code&gt;&lt;/a&gt; Docs: Update CLA info (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15058&quot;&gt;#15058&lt;/a&gt;) (Brian Warner)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fabdf8a4e2f82b5fe2f903f015c3e60747a0b143&quot;&gt;&lt;code&gt;fabdf8a&lt;/code&gt;&lt;/a&gt; Chore: Remove &lt;code&gt;target.all&lt;/code&gt; from &lt;code&gt;Makefile.js&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15088&quot;&gt;#15088&lt;/a&gt;) (Hirotaka Tagawa / wafuwafu13)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05d7140d46e2b5300d4dc9a60450eed956c95420&quot;&gt;&lt;code&gt;05d7140&lt;/code&gt;&lt;/a&gt; Chore: document target global in Makefile.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15084&quot;&gt;#15084&lt;/a&gt;) (Hirotaka Tagawa / wafuwafu13)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/47be8003d700bc0606495ae42610eaba94e639c5&quot;&gt;&lt;code&gt;47be800&lt;/code&gt;&lt;/a&gt; Chore: test Property &amp;gt; .key with { a = 1 } pattern (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14799&quot;&gt;#14799&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15072&quot;&gt;#15072&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9fb0f7040759ea23538997648f2d2d53e7c9db8a&quot;&gt;&lt;code&gt;9fb0f70&lt;/code&gt;&lt;/a&gt; Chore: fix bug report template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15061&quot;&gt;#15061&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f87e199e988f42fc490890eee0642d86c48c85ff&quot;&gt;&lt;code&gt;f87e199&lt;/code&gt;&lt;/a&gt; Chore: Cleanup issue templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15039&quot;&gt;#15039&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.0.0-beta.2 released</title>
    <link href="https://eslint.org/blog/2021/09/eslint-v8.0.0-beta.2-released/"/>
    <updated>2021-09-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/09/eslint-v8.0.0-beta.2-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The use of reserved words as identifiers in ES3 is now &lt;a href=&quot;https://github.com/eslint/eslint/issues/15017&quot;&gt;disallowed&lt;/a&gt;. This change only affects users with default parser configured with &lt;code&gt;{ &amp;quot;ecmaVersion&amp;quot;: 3 }&lt;/code&gt; in parser options.&lt;/li&gt;
&lt;li&gt;All core rules have been updated to support ES2022 class fields and private class members. ESLint now fully supports the following ES2022 syntax:
&lt;ul&gt;
&lt;li&gt;Class public instance fields and private instance fields&lt;/li&gt;
&lt;li&gt;Class public static fields and private static fields&lt;/li&gt;
&lt;li&gt;Class private instance methods and accessors&lt;/li&gt;
&lt;li&gt;Class private static methods and accessors&lt;/li&gt;
&lt;li&gt;RegExp match indices&lt;/li&gt;
&lt;li&gt;Top-level &lt;code&gt;await&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/8.0.0/rules/class-methods-use-this&quot;&gt;&lt;code&gt;class-methods-use-this&lt;/code&gt;&lt;/a&gt; rule has a new &lt;code&gt;enforceForClassFields&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/8.0.0/rules/max-classes-per-file&quot;&gt;&lt;code&gt;max-classes-per-file&lt;/code&gt;&lt;/a&gt; rule has a new &lt;code&gt;ignoreExpressions&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since this is a beta release, it is not expected to be ready for production, but please try it and report any unexpected issues.&lt;/p&gt;
&lt;h3 id=&quot;notes&quot; tabindex=&quot;-1&quot;&gt;Notes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;VS Code ESLint extension has &lt;a href=&quot;https://marketplace.visualstudio.com/items/dbaeumer.vscode-eslint/changelog&quot;&gt;added support for ESLint v8.0.0&lt;/a&gt;, you’ll just need to install the latest v2.1.25 of the extension.&lt;/li&gt;
&lt;li&gt;We have received reports from plugin authors about &lt;a href=&quot;https://github.com/eslint/eslint/issues/14936#issuecomment-905786726&quot;&gt;problems with testing plugin rules with Jest&lt;/a&gt;, as Jest’s resolver currently doesn’t support &lt;a href=&quot;https://nodejs.org/api/packages.html#packages_subpath_exports&quot;&gt;subpath exports&lt;/a&gt;. For a workaround, please see &lt;a href=&quot;https://github.com/eslint/eslint/issues/14936#issuecomment-906768517&quot;&gt;this comment&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@8.0.0-beta.2 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/8.0.0/user-guide/migrating-to-8.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7cf96cf185f849d379b660072d660ec35ac5b46d&quot;&gt;&lt;code&gt;7cf96cf&lt;/code&gt;&lt;/a&gt; Breaking: Disallow reserved words in ES3 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/15017&quot;&gt;#15017&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15046&quot;&gt;#15046&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88a39520716bdd11f8647e47c57bd8bf91bc7148&quot;&gt;&lt;code&gt;88a3952&lt;/code&gt;&lt;/a&gt; Update: support class fields in the &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;&lt;code&gt;complexity&lt;/code&gt;&lt;/a&gt; rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14957&quot;&gt;#14957&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d1ccb676fedd1ceb4b1e44abf8133f116a5aecb&quot;&gt;&lt;code&gt;6d1ccb6&lt;/code&gt;&lt;/a&gt; Update: enforceForClassFields in &lt;a href=&quot;https://eslint.org/docs/rules/class-methods-use-this&quot;&gt;class-methods-use-this&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15018&quot;&gt;#15018&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd109379f730a988a9e6c0102bcfe443ad0b4b94&quot;&gt;&lt;code&gt;dd10937&lt;/code&gt;&lt;/a&gt; Update: added ignoreExpressions option to &lt;a href=&quot;https://eslint.org/docs/rules/max-classes-per-file&quot;&gt;max-classes-per-file&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15000&quot;&gt;#15000&lt;/a&gt;) (Josh Goldberg)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9bd3d87c8d7369e85f2b7d9b784fed8143191d30&quot;&gt;&lt;code&gt;9bd3d87&lt;/code&gt;&lt;/a&gt; Fix: semicolon-less style in &lt;a href=&quot;https://eslint.org/docs/rules/lines-between-class-members&quot;&gt;lines-between-class-members&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15045&quot;&gt;#15045&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f966fe6286b6f668812f5155b79d4ee2a8b584b3&quot;&gt;&lt;code&gt;f966fe6&lt;/code&gt;&lt;/a&gt; Fix: Update &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;semi&lt;/a&gt; for class-fields (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14945&quot;&gt;#14945&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e9764f3e2fe3f7b6341c9a4381f0dcd23548338e&quot;&gt;&lt;code&gt;e9764f3&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-undef-init&quot;&gt;no-undef-init&lt;/a&gt; should not apply to class fields (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14994&quot;&gt;#14994&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/91e82f5c4cfeab5ac6d01865ce0eb9ea0649df39&quot;&gt;&lt;code&gt;91e82f5&lt;/code&gt;&lt;/a&gt; Docs: LintMessage.line and column are possibly undefined (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15032&quot;&gt;#15032&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd5663166a8235512e797522731af1e9651f9392&quot;&gt;&lt;code&gt;dd56631&lt;/code&gt;&lt;/a&gt; Docs: remove duplicate code path analysis document (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15033&quot;&gt;#15033&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c61f5ac67682fcfec7fc6faafcf72e4b1a339ff&quot;&gt;&lt;code&gt;8c61f5a&lt;/code&gt;&lt;/a&gt; Docs: add info about non-capturing groups to &lt;a href=&quot;https://eslint.org/docs/rules/prefer-named-capture-group&quot;&gt;prefer-named-capture-group&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15009&quot;&gt;#15009&lt;/a&gt;) (Andrzej Wódkiewicz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4338b74767fa71e4e8d171f8503aa33d970e509f&quot;&gt;&lt;code&gt;4338b74&lt;/code&gt;&lt;/a&gt; Docs: add &lt;a href=&quot;https://eslint.org/docs/rules/no-dupe-class-members&quot;&gt;no-dupe-class-members&lt;/a&gt; examples with class fields (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15005&quot;&gt;#15005&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88b4e3d191c2577e2e1a283cc5f825feea6271cc&quot;&gt;&lt;code&gt;88b4e3d&lt;/code&gt;&lt;/a&gt; Docs: Make clear how rule options are overridden (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14962&quot;&gt;#14962&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14976&quot;&gt;#14976&lt;/a&gt;) (Jake Ob)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4165c7f937f5fc46d4209ae8f763238d73f37238&quot;&gt;&lt;code&gt;4165c7f&lt;/code&gt;&lt;/a&gt; Docs: Clarify Linter vs ESLint in node.js api docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14953&quot;&gt;#14953&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14995&quot;&gt;#14995&lt;/a&gt;) (Brian Bartels)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/80cfb8f858888bddfefd7de6b4ecbf5aabe267bc&quot;&gt;&lt;code&gt;80cfb8f&lt;/code&gt;&lt;/a&gt; Docs: fix typo in migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14985&quot;&gt;#14985&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e5c2e853ace560876c2f2119e134639be8659d0&quot;&gt;&lt;code&gt;9e5c2e8&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/eslintrc@1.0.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15047&quot;&gt;#15047&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/921ba1ee53e5f2219f09050565b8d69fab517d72&quot;&gt;&lt;code&gt;921ba1e&lt;/code&gt;&lt;/a&gt; Chore: fix failing cli test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15041&quot;&gt;#15041&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/143a5987f18f063a47a0646fa1e10e0f88602f6f&quot;&gt;&lt;code&gt;143a598&lt;/code&gt;&lt;/a&gt; Chore: Switch issues to use forms (&lt;a href=&quot;https://github.com/eslint/eslint/issues/15024&quot;&gt;#15024&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4232d47f88611c68a6c0f915b092b68845ecbaf&quot;&gt;&lt;code&gt;b4232d4&lt;/code&gt;&lt;/a&gt; Chore: Add test that deprecated rules display a deprecated notice (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14989&quot;&gt;#14989&lt;/a&gt;) (TagawaHirotaka)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.0.0-beta.1 released</title>
    <link href="https://eslint.org/blog/2021/08/eslint-v8.0.0-beta.1-released/"/>
    <updated>2021-08-27T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/08/eslint-v8.0.0-beta.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Beta testing revealed that the impact of the breaking change to &lt;a href=&quot;https://github.com/eslint/eslint/pull/14656&quot;&gt;allow line comment directives&lt;/a&gt; for all directives that previously required block comments outweighs the benefits of this feature due to a high number of accidental directives, so we decided to &lt;a href=&quot;https://github.com/eslint/eslint/issues/14960&quot;&gt;revert this change&lt;/a&gt; and exclude this feature from v8.0.0.&lt;/li&gt;
&lt;li&gt;Code Path Analysis now supports ES2022 class fields. In particular, each class field initializer now starts a separate code path. A new &lt;code&gt;origin&lt;/code&gt; property has been added to &lt;a href=&quot;https://eslint.org/docs/8.0.0/developer-guide/code-path-analysis#codepath&quot;&gt;CodePath&lt;/a&gt; objects.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;meta.docs.category&lt;/code&gt; property has been removed from all core rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since this is a beta release, it is not expected to be ready for production, but please try it and report any unexpected issues.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@8.0.0-beta.1 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/8.0.0/user-guide/migrating-to-8.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/305e14af8bd12afc01487abee5c9b0f3eaca989e&quot;&gt;&lt;code&gt;305e14a&lt;/code&gt;&lt;/a&gt; Breaking: remove meta.docs.category in core rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13398&quot;&gt;#13398&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14594&quot;&gt;#14594&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05ca24c57f90f91421b682dca3d7a45b7957fb77&quot;&gt;&lt;code&gt;05ca24c&lt;/code&gt;&lt;/a&gt; Update: Code path analysis for class fields (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14343&quot;&gt;#14343&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14886&quot;&gt;#14886&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/44c6fc879de61e9513835d1d4d6ae978d9a43c51&quot;&gt;&lt;code&gt;44c6fc8&lt;/code&gt;&lt;/a&gt; Update: support class fields in &lt;a href=&quot;https://eslint.org/docs/rules/func-name-matching&quot;&gt;func-name-matching&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14964&quot;&gt;#14964&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3d7d5fb32425e8c04d3eaa0107a2ab03a2e285df&quot;&gt;&lt;code&gt;3d7d5fb&lt;/code&gt;&lt;/a&gt; Update: reporting loc for &lt;code&gt;never&lt;/code&gt; option in &lt;a href=&quot;https://eslint.org/docs/rules/eol-last&quot;&gt;&lt;code&gt;eol-last&lt;/code&gt;&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14840&quot;&gt;#14840&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f110926a7abcc875a86dd13116f794e4f950e2ba&quot;&gt;&lt;code&gt;f110926&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; false negative with comma operator (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14928&quot;&gt;#14928&lt;/a&gt;) (Sachin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26b0cd924e79a0ab2374c0cd813e92055f9fff7b&quot;&gt;&lt;code&gt;26b0cd9&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-unreachable&quot;&gt;no-unreachable&lt;/a&gt; logic for class fields (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14920&quot;&gt;#14920&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3409785a41a5bd2b128ed11b8baf7a59f9e412ee&quot;&gt;&lt;code&gt;3409785&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; ignoreGlobals shouldn’t apply to undef vars (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14966&quot;&gt;#14966&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee1b54f31fa840e6ec72a313aa4090fdd3e985cd&quot;&gt;&lt;code&gt;ee1b54f&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; private name compat (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14946&quot;&gt;#14946&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/396a0e3c7c82e5d2680d07250008094f336856db&quot;&gt;&lt;code&gt;396a0e3&lt;/code&gt;&lt;/a&gt; Docs: update ScopeManager with class fields (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14974&quot;&gt;#14974&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6663e7aed498a73108b5e6371f218d9411b87796&quot;&gt;&lt;code&gt;6663e7a&lt;/code&gt;&lt;/a&gt; Docs: remove &lt;code&gt;docs&lt;/code&gt; script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14288&quot;&gt;#14288&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14971&quot;&gt;#14971&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/44f7de5ee4d934dee540d3d55305126c670f6bfc&quot;&gt;&lt;code&gt;44f7de5&lt;/code&gt;&lt;/a&gt; Docs: Update deprecated information (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14961&quot;&gt;#14961&lt;/a&gt;) (TagawaHirotaka)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8bcef70a4a6b1fbb2007075bed754635f27ff01&quot;&gt;&lt;code&gt;a8bcef7&lt;/code&gt;&lt;/a&gt; Docs: Add 2021 and 2022 to supported ECMAScript versions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14952&quot;&gt;#14952&lt;/a&gt;) (coderaiser)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b301069981dc1dcca51df2813dcebdca8c150502&quot;&gt;&lt;code&gt;b301069&lt;/code&gt;&lt;/a&gt; Docs: fix ‘When Not To Use’ in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-named-capture-group&quot;&gt;prefer-named-capture-group&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14959&quot;&gt;#14959&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14969&quot;&gt;#14969&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e98f14d356b5ff934dd2a0a1fb226f1b15317ab3&quot;&gt;&lt;code&gt;e98f14d&lt;/code&gt;&lt;/a&gt; Docs: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-globals&quot;&gt;no-implicit-globals&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14954&quot;&gt;#14954&lt;/a&gt;) (jwbth)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81c60f4a8725738f191580646562d1dca7eee933&quot;&gt;&lt;code&gt;81c60f4&lt;/code&gt;&lt;/a&gt; Docs: document ESLint api (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14934&quot;&gt;#14934&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c74fe08642c30e1a4cd4e0866251a2d29466add8&quot;&gt;&lt;code&gt;c74fe08&lt;/code&gt;&lt;/a&gt; Build: Force prerelease peer dep for Node 16 in CI (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14933&quot;&gt;#14933&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db1518374a5e88efedf1ed4609d879f3091af74f&quot;&gt;&lt;code&gt;db15183&lt;/code&gt;&lt;/a&gt; Chore: Refactor comments of tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14956&quot;&gt;#14956&lt;/a&gt;) (TagawaHirotaka)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a79c9f35d665c2bcc63267bdf359a8176e0a84ce&quot;&gt;&lt;code&gt;a79c9f3&lt;/code&gt;&lt;/a&gt; Chore: Enforce jsdoc check-line-alignment never (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14955&quot;&gt;#14955&lt;/a&gt;) (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d18db6278320fb97bc8e0bff3518c790566a6a6&quot;&gt;&lt;code&gt;2d18db6&lt;/code&gt;&lt;/a&gt; Chore: add test for merging &lt;code&gt;parserOptions&lt;/code&gt; in Linter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14948&quot;&gt;#14948&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a4ae3b68a1afd9483d331997635727fb19a1a99&quot;&gt;&lt;code&gt;9a4ae3b&lt;/code&gt;&lt;/a&gt; Chore: Apply comment require-description and check ClassDeclaration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14949&quot;&gt;#14949&lt;/a&gt;) (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8344675c309a359dd2af5afddba6122f5dc803d0&quot;&gt;&lt;code&gt;8344675&lt;/code&gt;&lt;/a&gt; Chore: fix small typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14951&quot;&gt;#14951&lt;/a&gt;) (Sosuke Suzuki)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58840ac844a61c72eabb603ecfb761812b82a7ed&quot;&gt;&lt;code&gt;58840ac&lt;/code&gt;&lt;/a&gt; Chore: Update jsdoc plugin and tweak rules in effect (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14814&quot;&gt;#14814&lt;/a&gt;) (Brett Zamir)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v8.0.0-beta.0 released</title>
    <link href="https://eslint.org/blog/2021/08/eslint-v8.0.0-beta.0-released/"/>
    <updated>2021-08-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/08/eslint-v8.0.0-beta.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Most of the highlights of this release are breaking changes, and are discussed further in the &lt;a href=&quot;https://eslint.org/docs/8.0.0/user-guide/migrating-to-8.0.0&quot;&gt;migration guide&lt;/a&gt;. In addition, there are some new features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The default parser now supports ES2022 syntax, including class fields and top-level &lt;code&gt;await&lt;/code&gt;. Some rules still need to be updated, and you can follow progress on the &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;tracking issue&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Autofix gained support for removing unused disable directives when using &lt;code&gt;--fix&lt;/code&gt; with &lt;code&gt;--report-unused-disable-directives&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since this is a beta release, it is not expected to be ready for production, but please try it and report any unexpected issues.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@8.0.0-beta.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/8.0.0/user-guide/migrating-to-8.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24c9f2ac57efcd699ca69695c82e51ce5742df7b&quot;&gt;&lt;code&gt;24c9f2a&lt;/code&gt;&lt;/a&gt; Breaking: Strict package exports (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13654&quot;&gt;#13654&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14706&quot;&gt;#14706&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86d31a4951e3a39e359e284f5fe336ac477369fe&quot;&gt;&lt;code&gt;86d31a4&lt;/code&gt;&lt;/a&gt; Breaking: disallow SourceCode#getComments() in RuleTester (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14744&quot;&gt;#14744&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14769&quot;&gt;#14769&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d2213deb69c5901c1950bbe648aa819e7e742ed&quot;&gt;&lt;code&gt;1d2213d&lt;/code&gt;&lt;/a&gt; Breaking: Fixable disable directives (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11815&quot;&gt;#11815&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14617&quot;&gt;#14617&lt;/a&gt;) (Josh Goldberg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4a7aab7d4323ff7027eebca709d4e95a9aaa80bc&quot;&gt;&lt;code&gt;4a7aab7&lt;/code&gt;&lt;/a&gt; Breaking: require &lt;code&gt;meta&lt;/code&gt; for fixable rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13349&quot;&gt;#13349&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14634&quot;&gt;#14634&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6a761f9b6582e9f71705161be827ca303ef183f&quot;&gt;&lt;code&gt;d6a761f&lt;/code&gt;&lt;/a&gt; Breaking: Require &lt;code&gt;meta.hasSuggestions&lt;/code&gt; for rules with suggestions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14573&quot;&gt;#14573&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c841b880b5649392a55c98ecc9af757bd213ff0&quot;&gt;&lt;code&gt;4c841b8&lt;/code&gt;&lt;/a&gt; Breaking: allow all directives in line comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14575&quot;&gt;#14575&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14656&quot;&gt;#14656&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6bd747b5b7731195224875b952a9ea61445a9938&quot;&gt;&lt;code&gt;6bd747b&lt;/code&gt;&lt;/a&gt; Breaking: support new regex d flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14640&quot;&gt;#14640&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14653&quot;&gt;#14653&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b4f3abdb794feb3be31959bb44bfb0ef6318e8e&quot;&gt;&lt;code&gt;8b4f3ab&lt;/code&gt;&lt;/a&gt; Breaking: fix &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; schema (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13739&quot;&gt;#13739&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14030&quot;&gt;#14030&lt;/a&gt;) (Joakim Nilsson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b953a4ee12f120658a9ec27d1f8ca88dd3dfb599&quot;&gt;&lt;code&gt;b953a4e&lt;/code&gt;&lt;/a&gt; Breaking: upgrade espree and support new class features (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14343&quot;&gt;#14343&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14591&quot;&gt;#14591&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8cce06cb39886902ce0d2e6882f46c3bf52fb955&quot;&gt;&lt;code&gt;8cce06c&lt;/code&gt;&lt;/a&gt; Breaking: add some rules to eslint:recommended (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14673&quot;&gt;#14673&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14691&quot;&gt;#14691&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86bb63b370e0ff350e988a5fa228a8234abe800c&quot;&gt;&lt;code&gt;86bb63b&lt;/code&gt;&lt;/a&gt; Breaking: Drop &lt;code&gt;codeframe&lt;/code&gt; and &lt;code&gt;table&lt;/code&gt; formatters (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14316&quot;&gt;#14316&lt;/a&gt;) (Federico Brigante)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f3cb3208c8952a6218d54658cfda85942b9fda42&quot;&gt;&lt;code&gt;f3cb320&lt;/code&gt;&lt;/a&gt; Breaking: drop node v10/v13/v15 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14023&quot;&gt;#14023&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14592&quot;&gt;#14592&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9052eee07a459dc059cd92f657a3ae73acc95bb5&quot;&gt;&lt;code&gt;9052eee&lt;/code&gt;&lt;/a&gt; Update: check class fields in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14906&quot;&gt;#14906&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af965848c010612c3e136c367cc9b9e2e822f580&quot;&gt;&lt;code&gt;af96584&lt;/code&gt;&lt;/a&gt; Fix: handle computed class fields in &lt;a href=&quot;https://eslint.org/docs/rules/operator-linebreak&quot;&gt;operator-linebreak&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14915&quot;&gt;#14915&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a773b99873965652a86bec489193dc42a8923f5f&quot;&gt;&lt;code&gt;a773b99&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;no-useless-computed-key&lt;/a&gt; edge cases with class fields (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14903&quot;&gt;#14903&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cbc43daad2ea229fb15a9198efd2bc2721dfb75f&quot;&gt;&lt;code&gt;cbc43da&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; PrivateIdentifier false positive (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14897&quot;&gt;#14897&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ccb9a9138acd63457e004630475495954c1be6f4&quot;&gt;&lt;code&gt;ccb9a91&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/dot-notation&quot;&gt;dot-notation&lt;/a&gt; false positive with private identifier (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14898&quot;&gt;#14898&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28fe19c4a9108111932966aa7c9f361c26601d70&quot;&gt;&lt;code&gt;28fe19c&lt;/code&gt;&lt;/a&gt; Docs: Add v8.0.0 migration guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14856&quot;&gt;#14856&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14884&quot;&gt;#14884&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f5d0889264c60dddb6fb07a3b1e43f840e84d57&quot;&gt;&lt;code&gt;1f5d088&lt;/code&gt;&lt;/a&gt; Docs: add an example &lt;code&gt;Object.assign()&lt;/code&gt; for rule &lt;a href=&quot;https://eslint.org/docs/rules/no-import-assign&quot;&gt;no-import-assign&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14916&quot;&gt;#14916&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4e58023f22381508babfc52087853b5e3965b9c&quot;&gt;&lt;code&gt;c4e5802&lt;/code&gt;&lt;/a&gt; Docs: improve rule details for &lt;a href=&quot;https://eslint.org/docs/rules/no-console&quot;&gt;&lt;code&gt;no-console&lt;/code&gt;&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14793&quot;&gt;#14793&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14901&quot;&gt;#14901&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c3a47072aeb5cfda40a1eb20b43a10c5ca7aab3&quot;&gt;&lt;code&gt;5c3a470&lt;/code&gt;&lt;/a&gt; Docs: add class fields in &lt;a href=&quot;https://eslint.org/docs/rules/no-multi-assign&quot;&gt;no-multi-assign&lt;/a&gt; documentation (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14907&quot;&gt;#14907&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d234d890b383837f8e4bda0f6ce1e2a348f9835e&quot;&gt;&lt;code&gt;d234d89&lt;/code&gt;&lt;/a&gt; Docs: add class fields in &lt;a href=&quot;https://eslint.org/docs/rules/func-names&quot;&gt;func-names&lt;/a&gt; documentation (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14857&quot;&gt;#14857&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14908&quot;&gt;#14908&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e037d61a12ad17a36e05dcf65aa63fad303c79b9&quot;&gt;&lt;code&gt;e037d61&lt;/code&gt;&lt;/a&gt; Docs: Mention workaround for escaping the slash character in selectors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14675&quot;&gt;#14675&lt;/a&gt;) (Aria)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81f03b6ad69c7f67ad6ba72e02e73266aa8f7696&quot;&gt;&lt;code&gt;81f03b6&lt;/code&gt;&lt;/a&gt; Docs: Update license copyright (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14877&quot;&gt;#14877&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec9db63e53a6605a558dcd82947d2425f89887c3&quot;&gt;&lt;code&gt;ec9db63&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/eslintrc@1.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14865&quot;&gt;#14865&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62c6fe7d10ff4eeebd196e143f96cfd88818393d&quot;&gt;&lt;code&gt;62c6fe7&lt;/code&gt;&lt;/a&gt; Upgrade: Debug 4.0.1 &amp;gt; 4.3.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14892&quot;&gt;#14892&lt;/a&gt;) (sandesh bafna)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88db3f54988dddfbda35764ecf1ea16354c4213a&quot;&gt;&lt;code&gt;88db3f5&lt;/code&gt;&lt;/a&gt; Upgrade: &lt;code&gt;js-yaml&lt;/code&gt; to v4 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14890&quot;&gt;#14890&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae6072b1de5c8b30ce6c58290852082439c40b30&quot;&gt;&lt;code&gt;ae6072b&lt;/code&gt;&lt;/a&gt; Upgrade: &lt;code&gt;eslint-visitor-keys&lt;/code&gt; to v3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14902&quot;&gt;#14902&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e53d8cf9d73bd105cf6ba4f6b5477ccc4b980939&quot;&gt;&lt;code&gt;e53d8cf&lt;/code&gt;&lt;/a&gt; Upgrade: &lt;code&gt;markdownlint&lt;/code&gt; dev dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14883&quot;&gt;#14883&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d66e9414be60e05badb96bc3e1a55ca34636d7f8&quot;&gt;&lt;code&gt;d66e941&lt;/code&gt;&lt;/a&gt; Upgrade: @humanwhocodes/config-array to 0.6 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14891&quot;&gt;#14891&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8b2d5553b0de23e8b72ee45949650cd5f9a10d2&quot;&gt;&lt;code&gt;b8b2d55&lt;/code&gt;&lt;/a&gt; Build: add codeql (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14729&quot;&gt;#14729&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/be334f9d8633e9d193dcb8b36f484547e9d3ab97&quot;&gt;&lt;code&gt;be334f9&lt;/code&gt;&lt;/a&gt; Chore: Fix Makefile call to linter.getRules() (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14932&quot;&gt;#14932&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c86b68a6e2435eb03b681b51b099b552b521adc&quot;&gt;&lt;code&gt;0c86b68&lt;/code&gt;&lt;/a&gt; Chore: Replace old syntax for Array flat/flatMap (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14614&quot;&gt;#14614&lt;/a&gt;) (Stephen Wade)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a89f3f7b6a3edb3465952521bdf06a220515b95&quot;&gt;&lt;code&gt;6a89f3f&lt;/code&gt;&lt;/a&gt; Chore: ignore &lt;code&gt;yarn-error.log&lt;/code&gt; and &lt;code&gt;.pnpm-debug.log&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14925&quot;&gt;#14925&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3b6cd8934b3640ffb6fa49b471babf07f0ad769a&quot;&gt;&lt;code&gt;3b6cd89&lt;/code&gt;&lt;/a&gt; Chore: Add rel/abs path tests in &lt;code&gt;no-restricted-{imports/modules}&lt;/code&gt; rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14910&quot;&gt;#14910&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f98451584a82e41f82ceacd484ea0fe90aa9ce63&quot;&gt;&lt;code&gt;f984515&lt;/code&gt;&lt;/a&gt; Chore: add assertions on reporting location in &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;&lt;code&gt;semi&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14899&quot;&gt;#14899&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/149230ce7e296c029a0b6c085216fc0360ed4c65&quot;&gt;&lt;code&gt;149230c&lt;/code&gt;&lt;/a&gt; Chore: Specify Node 14.x for Verify Files CI job (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14896&quot;&gt;#14896&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/537cf6a0e78ee9b7167e7f8c56f4053d3fb5b2d7&quot;&gt;&lt;code&gt;537cf6a&lt;/code&gt;&lt;/a&gt; Chore: update &lt;code&gt;glob-parent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14879&quot;&gt;#14879&lt;/a&gt;)(&lt;a href=&quot;https://github.com/eslint/eslint/issues/14887&quot;&gt;#14887&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7b4a3f6a44e167c71985d373f73eebd3a4d9556&quot;&gt;&lt;code&gt;f7b4a3f&lt;/code&gt;&lt;/a&gt; Chore: update dev deps to latest (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14624&quot;&gt;#14624&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.32.0 released</title>
    <link href="https://eslint.org/blog/2021/07/eslint-v7.32.0-released/"/>
    <updated>2021-07-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/07/eslint-v7.32.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The new &lt;a href=&quot;https://eslint.org/docs/user-guide/command-line-interface#--exit-on-fatal-error&quot;&gt;&lt;code&gt;--exit-on-fatal-error&lt;/code&gt; option&lt;/a&gt; will treat parsing errors as fatal and return exit code 2. By default, parsing errors return exit code 1 like rule violations.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1bfbefdaaf19ef32df42b89a3f5d32cff1e5b831&quot;&gt;&lt;code&gt;1bfbefd&lt;/code&gt;&lt;/a&gt; New: Exit on fatal error (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13711&quot;&gt;#13711&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14730&quot;&gt;#14730&lt;/a&gt;) (Antonios Katopodis)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/faecf56cdb4146b28bfa4f1980adb41b4d3614b1&quot;&gt;&lt;code&gt;faecf56&lt;/code&gt;&lt;/a&gt; Update: change reporting location for &lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;&lt;code&gt;curly&lt;/code&gt;&lt;/a&gt; rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14766&quot;&gt;#14766&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d7dc07a15e256cee9232183165e2f6102f2c0873&quot;&gt;&lt;code&gt;d7dc07a&lt;/code&gt;&lt;/a&gt; Fix: ignore lines with empty elements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12756&quot;&gt;#12756&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14837&quot;&gt;#14837&lt;/a&gt;) (Soufiane Boutahlil)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d53d9064b9dd0dd6a8ea39e07b16310c8364db69&quot;&gt;&lt;code&gt;d53d906&lt;/code&gt;&lt;/a&gt; Docs: Prepare data for website to indicate rules with suggestions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14830&quot;&gt;#14830&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d28f2ffb986e49d6da5c1d91215580591f4cfd35&quot;&gt;&lt;code&gt;d28f2ff&lt;/code&gt;&lt;/a&gt; Docs: Reference eslint-config-eslint to avoid potential for staleness (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14805&quot;&gt;#14805&lt;/a&gt;) (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9c164f7b74ca73384c8c80eed5bdbe359b44f6c&quot;&gt;&lt;code&gt;f9c164f&lt;/code&gt;&lt;/a&gt; Docs: New syntax issue template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14826&quot;&gt;#14826&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed945bd662714b1917e9de71d5b322a28be9161b&quot;&gt;&lt;code&gt;ed945bd&lt;/code&gt;&lt;/a&gt; Docs: fix multiple broken links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14833&quot;&gt;#14833&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6641d88e17d952a8e51df5e0d3882a842d4c3f35&quot;&gt;&lt;code&gt;6641d88&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c78a7bff6044fd196ae3b737983e6744c6eb7c8&quot;&gt;&lt;code&gt;3c78a7b&lt;/code&gt;&lt;/a&gt; Chore: Adopt &lt;code&gt;eslint-plugin/prefer-message-ids&lt;/code&gt; rule internally (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14841&quot;&gt;#14841&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed007c82ee9d2170c87500d98303554b5f90b915&quot;&gt;&lt;code&gt;ed007c8&lt;/code&gt;&lt;/a&gt; Chore: Simplify internal &lt;code&gt;no-invalid-meta&lt;/code&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14842&quot;&gt;#14842&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8be8a36010145dfcd31cbdd4f781a91989e3b1bd&quot;&gt;&lt;code&gt;8be8a36&lt;/code&gt;&lt;/a&gt; Chore: Adopt &lt;code&gt;eslint-plugin/require-meta-docs-url&lt;/code&gt; rule internally (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14823&quot;&gt;#14823&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eba0c4595c126a91f700d5f2e8723ec3f820a830&quot;&gt;&lt;code&gt;eba0c45&lt;/code&gt;&lt;/a&gt; Chore: assertions on reporting loc in &lt;a href=&quot;https://eslint.org/docs/rules/unicode-bom&quot;&gt;&lt;code&gt;unicode-bom&lt;/code&gt;&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14809&quot;&gt;#14809&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60df44c79b0f74406119c0c040a360ca84e721fc&quot;&gt;&lt;code&gt;60df44c&lt;/code&gt;&lt;/a&gt; Chore: use &lt;code&gt;actions/setup-node@v2&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14816&quot;&gt;#14816&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.31.0 released</title>
    <link href="https://eslint.org/blog/2021/07/eslint-v7.31.0-released/"/>
    <updated>2021-07-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/07/eslint-v7.31.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a96b05f6c5649cfee112d605c91d95aa191e2f78&quot;&gt;&lt;code&gt;a96b05f&lt;/code&gt;&lt;/a&gt; Update: add end location to report in &lt;a href=&quot;https://eslint.org/docs/rules/consistent-return&quot;&gt;&lt;code&gt;consistent-return&lt;/code&gt;&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14798&quot;&gt;#14798&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ddffa8ad58b4b124b08061e9045fdb5370cbdbe3&quot;&gt;&lt;code&gt;ddffa8a&lt;/code&gt;&lt;/a&gt; Update: Indicating the operator in question (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14764&quot;&gt;#14764&lt;/a&gt;) (Paul Smith)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bba714c2ed813821ed288fbc07722cdde6e534fe&quot;&gt;&lt;code&gt;bba714c&lt;/code&gt;&lt;/a&gt; Update: Clarifying what changes need to be made in &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-operators&quot;&gt;no-mixed-operators&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14765&quot;&gt;#14765&lt;/a&gt;) (Paul Smith)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0e8e308929c9c66612505f2da89043f8592eea7&quot;&gt;&lt;code&gt;e0e8e30&lt;/code&gt;&lt;/a&gt; Docs: update BUG_REPORT template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14787&quot;&gt;#14787&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/39115c8b71d2629161359f6456f47fdbd552fddd&quot;&gt;&lt;code&gt;39115c8&lt;/code&gt;&lt;/a&gt; Docs: provide more context to &lt;a href=&quot;https://eslint.org/docs/rules/no-eq-null&quot;&gt;no-eq-null&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14801&quot;&gt;#14801&lt;/a&gt;) (gfyoung)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a3c73c130d437a65f4edba0dcb63390e68cac41&quot;&gt;&lt;code&gt;9a3c73c&lt;/code&gt;&lt;/a&gt; Docs: fix a broken link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14790&quot;&gt;#14790&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0d22e3eff18ea7f08189134c07cddceaec69a09&quot;&gt;&lt;code&gt;b0d22e3&lt;/code&gt;&lt;/a&gt; Docs: Mention benefit of providing &lt;code&gt;meta.docs.url&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14774&quot;&gt;#14774&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/efdbb1227019427ec2d968a8d6e9151dd8a77c35&quot;&gt;&lt;code&gt;efdbb12&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/eslintrc to v0.4.3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14808&quot;&gt;#14808&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a6a7438502abc6a1e29ec35cfbe2058ffc0803b1&quot;&gt;&lt;code&gt;a6a7438&lt;/code&gt;&lt;/a&gt; Chore: pin fs-teardown@0.1.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14771&quot;&gt;#14771&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.30.0 released</title>
    <link href="https://eslint.org/blog/2021/07/eslint-v7.30.0-released/"/>
    <updated>2021-07-02T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/07/eslint-v7.30.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;You can now set &lt;code&gt;&amp;quot;ecmaVersion&amp;quot;&lt;/code&gt; to &lt;code&gt;&amp;quot;latest&amp;quot;&lt;/code&gt; under &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring/language-options#specifying-parser-options&quot;&gt;&lt;code&gt;parserOptions&lt;/code&gt;&lt;/a&gt; in your configuration file:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token property&quot;&gt;&quot;parserOptions&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token property&quot;&gt;&quot;ecmaVersion&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;latest&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;&amp;quot;ecmaVersion&amp;quot;: &amp;quot;latest&amp;quot;&lt;/code&gt; always enables the latest supported ECMAScript version in ESLint’s default parser.&lt;/p&gt;
&lt;p&gt;Please note that this feature applies only if you are using the default parser. If you’re using a custom parser, refer to the parser’s documentation for the list of available options.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed1da5d96af2587b7211854e45cf8657ef808710&quot;&gt;&lt;code&gt;ed1da5d&lt;/code&gt;&lt;/a&gt; Update: ecmaVersion allows “latest” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14720&quot;&gt;#14720&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/104c0b592f203d315a108d311c58375357e40b24&quot;&gt;&lt;code&gt;104c0b5&lt;/code&gt;&lt;/a&gt; Update: improve &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;use-isnan&lt;/a&gt; rule to detect &lt;code&gt;Number.NaN&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14715&quot;&gt;#14715&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14718&quot;&gt;#14718&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b08170b92beb22db6ec612ebdfff930f9e0582ab&quot;&gt;&lt;code&gt;b08170b&lt;/code&gt;&lt;/a&gt; Update: Implement FlatConfigArray (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13481&quot;&gt;#13481&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14321&quot;&gt;#14321&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19a871a35ae9997ce352624b1081c96c54b73a9f&quot;&gt;&lt;code&gt;19a871a&lt;/code&gt;&lt;/a&gt; Docs: Suggest linting plugins for ESLint plugin developers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14754&quot;&gt;#14754&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aa87329d919f569404ca573b439934552006572f&quot;&gt;&lt;code&gt;aa87329&lt;/code&gt;&lt;/a&gt; Docs: fix broken links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14756&quot;&gt;#14756&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/278813a6e759f6b5512ac64c7530c9c51732e692&quot;&gt;&lt;code&gt;278813a&lt;/code&gt;&lt;/a&gt; Docs: fix and add more examples for &lt;a href=&quot;https://eslint.org/docs/rules/new-cap&quot;&gt;new-cap&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12874&quot;&gt;#12874&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14725&quot;&gt;#14725&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b8997ab63781f4ebf87e3269400b2ef4c7d2973&quot;&gt;&lt;code&gt;1b8997a&lt;/code&gt;&lt;/a&gt; Docs: Fix getRulesMetaForResults link syntax (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14723&quot;&gt;#14723&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aada733d2aee830aa32cccb9828cd72db4ccd6bd&quot;&gt;&lt;code&gt;aada733&lt;/code&gt;&lt;/a&gt; Docs: fix two broken links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14726&quot;&gt;#14726&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8972529f82d13bd04059ee8852b4ebb9b5350962&quot;&gt;&lt;code&gt;8972529&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5f746420700d457b92dd86659de588d272937b79&quot;&gt;&lt;code&gt;5f74642&lt;/code&gt;&lt;/a&gt; Chore: don’t check Program.start in SourceCode#getComments (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14744&quot;&gt;#14744&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14748&quot;&gt;#14748&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f113cdd872257d72bbd66d95e4eaf13623323b24&quot;&gt;&lt;code&gt;f113cdd&lt;/code&gt;&lt;/a&gt; Chore: upgrade eslint-plugin-eslint-plugin (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14738&quot;&gt;#14738&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.29.0 released</title>
    <link href="https://eslint.org/blog/2021/06/eslint-v7.29.0-released/"/>
    <updated>2021-06-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/06/eslint-v7.29.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;ESLint&lt;/code&gt; class has a new &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#-eslintgetrulesmetaforresultsresults&quot;&gt;&lt;code&gt;getRulesMetaForResults()&lt;/code&gt; method&lt;/a&gt; that returns &lt;code&gt;meta&lt;/code&gt; information for rules in lint results. ESLint integrations should migrate to &lt;code&gt;ESLint#getRulesMetaForResults()&lt;/code&gt; from the &lt;code&gt;getRules()&lt;/code&gt; method on the deprecated &lt;code&gt;CLIEngine&lt;/code&gt; class.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;RuleTester&lt;/code&gt; test cases now support an optional &lt;code&gt;only&lt;/code&gt; boolean property that allows &lt;a href=&quot;https://eslint.org/docs/developer-guide/unit-tests#running-individual-tests&quot;&gt;running a single test case in isolation&lt;/a&gt; for easier debugging.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfbfe5c1fd4c39a06d5e159dbe48479ca4305fc0&quot;&gt;&lt;code&gt;bfbfe5c&lt;/code&gt;&lt;/a&gt; New: Add only to RuleTester (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/73&quot;&gt;eslint/rfcs#73&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14677&quot;&gt;#14677&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2cd7b4a18057ca6067bdfc16de771dc5d90c0ea&quot;&gt;&lt;code&gt;c2cd7b4&lt;/code&gt;&lt;/a&gt; New: Add ESLint#getRulesMetaForResults() (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13654&quot;&gt;#13654&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14716&quot;&gt;#14716&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a1c7a0dac050ea5876972c50563a7eb867b38d3&quot;&gt;&lt;code&gt;6a1c7a0&lt;/code&gt;&lt;/a&gt; Fix: allow fallthrough comment inside block (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14701&quot;&gt;#14701&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14702&quot;&gt;#14702&lt;/a&gt;) (Kevin Gibbons)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a47e5e30b0da364593b6881f6826c595da8696f5&quot;&gt;&lt;code&gt;a47e5e3&lt;/code&gt;&lt;/a&gt; Docs: Add Mega-Linter to the list of integrations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14707&quot;&gt;#14707&lt;/a&gt;) (Nicolas Vuillamy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c93a222563177a9b5bc7a59aa106bc0a6d31e063&quot;&gt;&lt;code&gt;c93a222&lt;/code&gt;&lt;/a&gt; Docs: fix a broken link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14697&quot;&gt;#14697&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eea7e0d09d6ef43d6663cbe424e7974764a5f7fe&quot;&gt;&lt;code&gt;eea7e0d&lt;/code&gt;&lt;/a&gt; Chore: remove duplicate code (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14719&quot;&gt;#14719&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/353ddf965078030794419b089994373e27ffc86e&quot;&gt;&lt;code&gt;353ddf9&lt;/code&gt;&lt;/a&gt; Chore: enable reportUnusedDisableDirectives in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14699&quot;&gt;#14699&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/757c49584a5852c468c1b4a0b74ad3aa39d954e5&quot;&gt;&lt;code&gt;757c495&lt;/code&gt;&lt;/a&gt; Chore: add some rules to eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14692&quot;&gt;#14692&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>What&#39;s coming in ESLint v8.0.0</title>
    <link href="https://eslint.org/blog/2021/06/whats-coming-in-eslint-8.0.0/"/>
    <updated>2021-06-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/06/whats-coming-in-eslint-8.0.0/</id>
    <content type="html">&lt;p&gt;Last week, the Technical Steering Committee (TSC) met to finalize the features for ESLint v8.0.0. This feature set had not yet been locked down even as v8.0.0 work began and so this represented an important milestone that allows us to focus on getting this next major release shipped. You can see everything that is planned for v8.0.0 on our &lt;a href=&quot;https://github.com/eslint/eslint/projects/8&quot;&gt;project board&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;significant-changes-in-v8.0.0&quot; tabindex=&quot;-1&quot;&gt;Significant changes in v8.0.0&lt;/h2&gt;
&lt;p&gt;The following changes are important to understand as we move towards v8.0.0.&lt;/p&gt;
&lt;h3 id=&quot;dropping-support-for-node.js-v10.x%2C-13.x%2C-and-15.x&quot; tabindex=&quot;-1&quot;&gt;Dropping support for Node.js v10.x, 13.x, and 15.x&lt;/h3&gt;
&lt;p&gt;Node.js v10.x end-of-life was April 30, 2021, Node.js v13.x end-of-life was June 1, 2020, and Node.js v15.x end-of-life is this month (June 2021). As a result, ESLint v8.0.0 &lt;a href=&quot;https://github.com/eslint/eslint/issues/14023&quot;&gt;removes support&lt;/a&gt; for all three of these Node.js versions.&lt;/p&gt;
&lt;h3 id=&quot;removing-the-codeframe-and-table-formatters&quot; tabindex=&quot;-1&quot;&gt;Removing the &lt;code&gt;codeframe&lt;/code&gt; and &lt;code&gt;table&lt;/code&gt; formatters&lt;/h3&gt;
&lt;p&gt;In an ongoing effort to reduce the install size of ESLint, we have decided to &lt;a href=&quot;https://github.com/eslint/eslint/issues/14277&quot;&gt;remove the &lt;code&gt;codeframe&lt;/code&gt; and &lt;code&gt;table&lt;/code&gt; formatters&lt;/a&gt; from the core of ESLint. Both of these formatters include dependencies that aren’t used anywhere else in ESLint. If you are using these formatters currently, you’ll need to install the standalone packages (&lt;a href=&quot;https://www.npmjs.com/package/eslint-formatter-codeframe&quot;&gt;&lt;code&gt;eslint-formatter-codeframe&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://www.npmjs.com/package/eslint-formatter-table&quot;&gt;&lt;code&gt;eslint-formatter-table&lt;/code&gt;&lt;/a&gt;) for use with ESLint v8.0.0.&lt;/p&gt;
&lt;h3 id=&quot;support-for-es2022-class-fields%2C-top-level-await%2C-and-regexp-matching-indices&quot; tabindex=&quot;-1&quot;&gt;Support for ES2022 class fields, top-level &lt;code&gt;await&lt;/code&gt;, and regexp matching indices&lt;/h3&gt;
&lt;p&gt;Support for ES2022 &lt;a href=&quot;https://github.com/eslint/eslint/issues/14343&quot;&gt;comes to ESLint v8.0.0&lt;/a&gt; with native support for class fields, top-level &lt;code&gt;await&lt;/code&gt;, and regexp matching indices.&lt;/p&gt;
&lt;h3 id=&quot;rules-with-suggestions-now-require-the-meta.hassuggestions-property&quot; tabindex=&quot;-1&quot;&gt;Rules with suggestions now require the &lt;code&gt;meta.hasSuggestions&lt;/code&gt; property&lt;/h3&gt;
&lt;p&gt;Beginning in ESLint v8.0.0, rules that provide suggestions &lt;a href=&quot;https://github.com/eslint/eslint/issues/14312&quot;&gt;must include a &lt;code&gt;meta.hasSuggestions: true&lt;/code&gt; property&lt;/a&gt;. This allows ESLint to understand what a rule’s capabilities are just by inspecting the rule object. Rules that provide suggestions without &lt;code&gt;meta.hasSuggestions: true&lt;/code&gt; will cause an error.&lt;/p&gt;
&lt;h3 id=&quot;fixable-rules-now-require-meta.fixable-property&quot; tabindex=&quot;-1&quot;&gt;Fixable rules now require &lt;code&gt;meta.fixable&lt;/code&gt; property&lt;/h3&gt;
&lt;p&gt;In ESLint v7.0.0 and earlier, it was possible to write a rule as a function instead of an object and to provide fixes without specifying a &lt;code&gt;meta.fixable&lt;/code&gt; property. Beginning in v8.0.0, ESLint requires all rules that provide fixes to be specified in object format and &lt;a href=&quot;https://github.com/eslint/eslint/issues/13349&quot;&gt;include &lt;code&gt;meta.fixable: code|whitespace&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;unused-disable-directives-are-now-fixable&quot; tabindex=&quot;-1&quot;&gt;Unused disable directives are now fixable&lt;/h3&gt;
&lt;p&gt;ESLint v8.0.0 will now automatically &lt;a href=&quot;https://github.com/eslint/eslint/issues/11815&quot;&gt;remove unused disable directives&lt;/a&gt; when using the &lt;code&gt;--fix&lt;/code&gt; command line flag along with &lt;code&gt;--report-unused-disable-directives&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;line-comment-directives&quot; tabindex=&quot;-1&quot;&gt;Line comment directives&lt;/h3&gt;
&lt;p&gt;ESLint v8.0.0 now allows &lt;a href=&quot;https://github.com/eslint/eslint/issues/14575&quot;&gt;line comment directives&lt;/a&gt; for all directives that previously required block comments.&lt;/p&gt;
&lt;h3 id=&quot;stricter-rule-schema-validation&quot; tabindex=&quot;-1&quot;&gt;Stricter rule schema validation&lt;/h3&gt;
&lt;p&gt;With an &lt;a href=&quot;https://github.com/eslint/eslint/issues/13888&quot;&gt;upgrade to Ajv 8&lt;/a&gt;, ESLint v8.0.0 will have improved error detection for rule schemas. There were several areas where the validation would fail silently with Ajv 6, which could lead to end-user errors that were hard to detect. This stricter validation will help catch more errors earlier in the rule development process.&lt;/p&gt;
&lt;h3 id=&quot;removal-of-undocumented-apis%3B-removal-of-cliengine-and-linter&quot; tabindex=&quot;-1&quot;&gt;Removal of undocumented APIs; removal of &lt;code&gt;CLIEngine&lt;/code&gt; and &lt;code&gt;linter&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;ESLint v8.0.0 &lt;a href=&quot;https://github.com/eslint/eslint/issues/13654&quot;&gt;defines an &lt;code&gt;exports&lt;/code&gt; field&lt;/a&gt; to remove access to undocumented internal APIs that some packages were accessing.&lt;/p&gt;
&lt;p&gt;As part of this change, we have removed the deprecated &lt;code&gt;CLIEngine&lt;/code&gt; class to encourage adoption of the replacement &lt;code&gt;ESLint&lt;/code&gt; class. &lt;code&gt;CLIEngine&lt;/code&gt; was &lt;a href=&quot;https://eslint.org/blog/2020/05/eslint-v7.0.0-released#new-eslint-class&quot;&gt;deprecated in 2020&lt;/a&gt; and we can’t continue to support it as we move forward with more ambitious features for ESLint.&lt;/p&gt;
&lt;p&gt;Additionally, we are removing the &lt;code&gt;linter&lt;/code&gt; object as the &lt;code&gt;Linter&lt;/code&gt; class allows you to create any number of instances.&lt;/p&gt;
&lt;h2 id=&quot;when-to-expect-eslint-v8.0.0&quot; tabindex=&quot;-1&quot;&gt;When to expect ESLint v8.0.0&lt;/h2&gt;
&lt;p&gt;We expect the first beta release of ESLint v8.0.0 to be released at the end of June or the beginning of July. At that point, we will gather feedback from the community and fix any outstanding issues that make it difficult for people to upgrade. Availability of the first beta will be announced on this blog and on our &lt;a href=&quot;https://twitter.com/geteslint&quot;&gt;Twitter account&lt;/a&gt;, so please stay tuned!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.28.0 released</title>
    <link href="https://eslint.org/blog/2021/06/eslint-v7.28.0-released/"/>
    <updated>2021-06-04T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/06/eslint-v7.28.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;context.getphysicalfilename()&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;context.getPhysicalFilename()&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Rules can now use the new method &lt;code&gt;getPhysicalFilename()&lt;/code&gt; on the &lt;code&gt;context&lt;/code&gt; object to get the full path of the file on disk without any code block information.&lt;/p&gt;
&lt;p&gt;The difference between &lt;code&gt;getPhysicalFilename&lt;/code&gt; and &lt;code&gt;getFilename&lt;/code&gt; is observable when ESLint is used with &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring/plugins#specifying-processor&quot;&gt;processors&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getPhysicalFilename&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// &quot;/project/example.md&quot;        - original file&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getFilename&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;         &lt;span class=&quot;token comment&quot;&gt;// &quot;/project/example.md/0_0.js&quot; - virtual filename assigned to a code block&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb66a3d91af426dac9a7ffdbe47bdbbc0ffd4dd7&quot;&gt;&lt;code&gt;bb66a3d&lt;/code&gt;&lt;/a&gt; New: add &lt;code&gt;getPhysicalFilename()&lt;/code&gt; method to rule context (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11989&quot;&gt;#11989&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14616&quot;&gt;#14616&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5451635b4e89827cfc8d8d77083647c74506e42&quot;&gt;&lt;code&gt;c545163&lt;/code&gt;&lt;/a&gt; Update: support multiline &lt;code&gt;/*eslint-env*/&lt;/code&gt; directives (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14652&quot;&gt;#14652&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14660&quot;&gt;#14660&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f048cb0eec660d2052f1758f4b2ad7b1cb424e1&quot;&gt;&lt;code&gt;1f048cb&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;no-implicit-coercion&lt;/a&gt; false positive with &lt;code&gt;String()&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14623&quot;&gt;#14623&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14641&quot;&gt;#14641&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e44ce0a8acfaad513c385150c25e76e82a1b8f12&quot;&gt;&lt;code&gt;e44ce0a&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-duplicate-imports&quot;&gt;no-duplicate-imports&lt;/a&gt; allow unmergeable (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12758&quot;&gt;#12758&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12760&quot;&gt;#12760&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14238&quot;&gt;#14238&lt;/a&gt;) (Soufiane Boutahlil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4f111b67d114adbf76a9c9dbb18fa4f49bc91b6&quot;&gt;&lt;code&gt;e4f111b&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/arrow-body-style&quot;&gt;arrow-body-style&lt;/a&gt; crash with object pattern (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14633&quot;&gt;#14633&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14635&quot;&gt;#14635&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/123fb8648731c2c23313c544ffa1872d3024fe68&quot;&gt;&lt;code&gt;123fb86&lt;/code&gt;&lt;/a&gt; Docs: Add Feedback Needed triage description (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14670&quot;&gt;#14670&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e43dacd24337a82d4184fac9b44d497675f46ef&quot;&gt;&lt;code&gt;2e43dac&lt;/code&gt;&lt;/a&gt; Docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;&lt;code&gt;no-sequences&lt;/code&gt;&lt;/a&gt; example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14643&quot;&gt;#14643&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/958ff4e8a5102f204f1484d09985e28a79790996&quot;&gt;&lt;code&gt;958ff4e&lt;/code&gt;&lt;/a&gt; Docs: add note for arrow functions in no-seq rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14578&quot;&gt;#14578&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85a2725b1fade5538e727102d9701ccb503e54d4&quot;&gt;&lt;code&gt;85a2725&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1237705dd08c209c5e3136045ec51a4ba87a3abe&quot;&gt;&lt;code&gt;1237705&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/eslintrc to 0.4.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14672&quot;&gt;#14672&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d1e75a31b3e3d67130709a219bdd07ce6f3cf74&quot;&gt;&lt;code&gt;8d1e75a&lt;/code&gt;&lt;/a&gt; Upgrade: glob-parent version in package.json (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14658&quot;&gt;#14658&lt;/a&gt;) (Hamza Najeeb)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d709abfdde087325d4578b6709dc61040b8ca9d8&quot;&gt;&lt;code&gt;d709abf&lt;/code&gt;&lt;/a&gt; Chore: fix comment location in &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14648&quot;&gt;#14648&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec28b5a2bdc69f34ce29d670f5e84d2446774a00&quot;&gt;&lt;code&gt;ec28b5a&lt;/code&gt;&lt;/a&gt; Chore: upgrade eslint-plugin-eslint-plugin (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14590&quot;&gt;#14590&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.27.0 released</title>
    <link href="https://eslint.org/blog/2021/05/eslint-v7.27.0-released/"/>
    <updated>2021-05-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/05/eslint-v7.27.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; rule now allows specifying custom error messages for &lt;code&gt;patterns&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e9b5e07475564813b62cd1d7562a93c5fb4bc74&quot;&gt;&lt;code&gt;9e9b5e0&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; false negative with comma operator (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14325&quot;&gt;#14325&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14354&quot;&gt;#14354&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52655dd54925ee02af2ba3a0ebc09de959ae3101&quot;&gt;&lt;code&gt;52655dd&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; custom message for patterns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11843&quot;&gt;#11843&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14580&quot;&gt;#14580&lt;/a&gt;) (Alex Holden)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a2ced892c0dc43fa4942293b9f1c4b9151c3741&quot;&gt;&lt;code&gt;6a2ced8&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c0868cbeadc9f42716fa1178ebdc6b4cee6d31e&quot;&gt;&lt;code&gt;2c0868c&lt;/code&gt;&lt;/a&gt; Chore: merge all html formatter files into &lt;code&gt;html.js&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14612&quot;&gt;#14612&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afe95693e1e4316a1c6f01d39345061d4c5921c7&quot;&gt;&lt;code&gt;afe9569&lt;/code&gt;&lt;/a&gt; Chore: use includes instead of indexOf (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14607&quot;&gt;#14607&lt;/a&gt;) (Mikhail Bodrov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c0f418e2476df98519bc156b81d20431984e8704&quot;&gt;&lt;code&gt;c0f418e&lt;/code&gt;&lt;/a&gt; Chore: Remove lodash (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14287&quot;&gt;#14287&lt;/a&gt;) (Stephen Wade)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/967b1c4ceca8f5248378477da94ff118dafaa647&quot;&gt;&lt;code&gt;967b1c4&lt;/code&gt;&lt;/a&gt; Chore: Fix typo in large.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14589&quot;&gt;#14589&lt;/a&gt;) (Ikko Ashimine)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/086c1d6e8593cf8e7851daa8f2a890c213cf6999&quot;&gt;&lt;code&gt;086c1d6&lt;/code&gt;&lt;/a&gt; Chore: add more test cases for &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;&lt;code&gt;no-sequences&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14579&quot;&gt;#14579&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.26.0 released</title>
    <link href="https://eslint.org/blog/2021/05/eslint-v7.26.0-released/"/>
    <updated>2021-05-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/05/eslint-v7.26.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b6a3f31e6e78825114f82d4e0aed9cd72f784ac&quot;&gt;&lt;code&gt;0b6a3f3&lt;/code&gt;&lt;/a&gt; New: Include XO style guide in &lt;code&gt;eslint --init&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14193&quot;&gt;#14193&lt;/a&gt;) (Federico Brigante)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f071d1ef91286bf2e3fb63d9b679ff7702819a1e&quot;&gt;&lt;code&gt;f071d1e&lt;/code&gt;&lt;/a&gt; Update: Add automated suggestion to &lt;a href=&quot;https://eslint.org/docs/rules/radix&quot;&gt;&lt;code&gt;radix&lt;/code&gt;&lt;/a&gt; rule for parsing decimals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14291&quot;&gt;#14291&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae6dbd148aaca83e4bd04b9351b54029c50fac8a&quot;&gt;&lt;code&gt;ae6dbd1&lt;/code&gt;&lt;/a&gt; Fix: track variables, not names in &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;require-atomic-updates&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14208&quot;&gt;#14208&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14282&quot;&gt;#14282&lt;/a&gt;) (Patrick Ahmetovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee3a3ead893d185cc4b1ae9041940cb0968767e1&quot;&gt;&lt;code&gt;ee3a3ea&lt;/code&gt;&lt;/a&gt; Fix: create &lt;code&gt;.eslintrc.cjs&lt;/code&gt; for &lt;code&gt;module&lt;/code&gt; type (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14304&quot;&gt;#14304&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6791decfc58b7b09cfd0aabd15a3d14148aae073&quot;&gt;&lt;code&gt;6791dec&lt;/code&gt;&lt;/a&gt; Docs: fix example for &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;require-atomic-updates&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14562&quot;&gt;#14562&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aaf65e629adb74401092c3ccc9cb4e4bd1c8609b&quot;&gt;&lt;code&gt;aaf65e6&lt;/code&gt;&lt;/a&gt; Upgrade: eslintrc for ModuleResolver fix (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14577&quot;&gt;#14577&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a86e5018a3733049c09261bcabae422fbea893d&quot;&gt;&lt;code&gt;6a86e50&lt;/code&gt;&lt;/a&gt; Chore: remove loose-parser tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14315&quot;&gt;#14315&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14569&quot;&gt;#14569&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.25.0 released</title>
    <link href="https://eslint.org/blog/2021/04/eslint-v7.25.0-released/"/>
    <updated>2021-04-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/04/eslint-v7.25.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5df5e4a9976964fcf4dc67e241d4e22ec1370fe0&quot;&gt;&lt;code&gt;5df5e4a&lt;/code&gt;&lt;/a&gt; Update: highlight last write reference for &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14324&quot;&gt;#14324&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14335&quot;&gt;#14335&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41b3570b6c014c534bb3208ed00050fd99842101&quot;&gt;&lt;code&gt;41b3570&lt;/code&gt;&lt;/a&gt; Update: lint code block with same extension but different content (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14227&quot;&gt;#14227&lt;/a&gt;) (JounQin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/00238729329b86b4f8af89ebfe278da3095a6075&quot;&gt;&lt;code&gt;0023872&lt;/code&gt;&lt;/a&gt; Docs: Add deprecated note to &lt;code&gt;working-with-rules-deprecated&lt;/code&gt; page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14344&quot;&gt;#14344&lt;/a&gt;) (Michael Novotny)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2babb1069194166e0ac1afd1269bbd06ac299b6&quot;&gt;&lt;code&gt;f2babb1&lt;/code&gt;&lt;/a&gt; Docs: update pull request template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14336&quot;&gt;#14336&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02dde29eeb523ca24bc4ae7797d38627c3ba9fe9&quot;&gt;&lt;code&gt;02dde29&lt;/code&gt;&lt;/a&gt; Docs: Fix anchor in ‘docs/developer-guide/working-with-rules.md’ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14332&quot;&gt;#14332&lt;/a&gt;) (Nate-Wilkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb299966bdc3920dd2c6f9774d95103d242fc409&quot;&gt;&lt;code&gt;eb29996&lt;/code&gt;&lt;/a&gt; Docs: add more examples with arrow functions for &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;no-sequences&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14313&quot;&gt;#14313&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/36fca70fa29ab65080076810de98e09133254b8a&quot;&gt;&lt;code&gt;36fca70&lt;/code&gt;&lt;/a&gt; Chore: Upgrade eslump to 3.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14350&quot;&gt;#14350&lt;/a&gt;) (Stephen Wade)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/59b689a0b3fa658b8380431007cc1facb4617a3b&quot;&gt;&lt;code&gt;59b689a&lt;/code&gt;&lt;/a&gt; Chore: add node v16 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14355&quot;&gt;#14355&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb0a92b3d2fed4a17bc39b7f02c540cd1175ec7d&quot;&gt;&lt;code&gt;fb0a92b&lt;/code&gt;&lt;/a&gt; Chore: rename misspelled identifier in test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14346&quot;&gt;#14346&lt;/a&gt;) (Tobias Nießen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/07d14c304c358fbc9c3d318e1377d2b2bda9179f&quot;&gt;&lt;code&gt;07d14c3&lt;/code&gt;&lt;/a&gt; Chore: remove extraneous command from lint-staged config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14314&quot;&gt;#14314&lt;/a&gt;) (James George)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.24.0 released</title>
    <link href="https://eslint.org/blog/2021/04/eslint-v7.24.0-released/"/>
    <updated>2021-04-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/04/eslint-v7.24.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;no-implicit-coercion&lt;/a&gt; rule has a new &lt;code&gt;disallowTemplateShorthand&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-multi-assign&quot;&gt;no-multi-assign&lt;/a&gt; rule has a new &lt;code&gt;ignoreNonDeclaration&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f06ecdf78b6d6f366434d73a6acfe7041d575223&quot;&gt;&lt;code&gt;f06ecdf&lt;/code&gt;&lt;/a&gt; Update: Add disallowTemplateShorthand option in &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;no-implicit-coercion&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13579&quot;&gt;#13579&lt;/a&gt;) (Remco Haszing)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b51d0778d76c2aa27578caca3ea82c867dced3e4&quot;&gt;&lt;code&gt;b51d077&lt;/code&gt;&lt;/a&gt; Update: add ignoreNonDeclaration to &lt;a href=&quot;https://eslint.org/docs/rules/no-multi-assign&quot;&gt;no-multi-assign&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12545&quot;&gt;#12545&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14185&quot;&gt;#14185&lt;/a&gt;) (t-mangoe)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4d8b0db62b859e721105d4bc0f4044ce346995e&quot;&gt;&lt;code&gt;c4d8b0d&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; ignoreRestSiblings check assignments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14163&quot;&gt;#14163&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14264&quot;&gt;#14264&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71a80e38aab2dada01b808ed43d9b0e806d863c4&quot;&gt;&lt;code&gt;71a80e3&lt;/code&gt;&lt;/a&gt; Docs: fix broken links in Node.js API docs toc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14296&quot;&gt;#14296&lt;/a&gt;) (u-sho (Shouhei Uechi))&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bd46dc4647faa4c3bbb5f60d4c00616a64081398&quot;&gt;&lt;code&gt;bd46dc4&lt;/code&gt;&lt;/a&gt; Docs: Fix incorrect reference to “braces” in &lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;arrow-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14300&quot;&gt;#14300&lt;/a&gt;) (emclain)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d6235ea201b8b90761ee69bb4d46ae18899c28d&quot;&gt;&lt;code&gt;0d6235e&lt;/code&gt;&lt;/a&gt; Docs: update header in &lt;a href=&quot;https://eslint.org/docs/rules/max-lines&quot;&gt;max-lines&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14273&quot;&gt;#14273&lt;/a&gt;) (Shinigami)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/70c92164017238e329e3a2d1654a0227b8f953f7&quot;&gt;&lt;code&gt;70c9216&lt;/code&gt;&lt;/a&gt; Docs: Update issue triage to include blocked column (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14275&quot;&gt;#14275&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/abca186a845200fd7728c4e5f220973e640054f9&quot;&gt;&lt;code&gt;abca186&lt;/code&gt;&lt;/a&gt; Docs: Fix typo in suggestions section (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14293&quot;&gt;#14293&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/147fc045e699811fab33dddf77498324ddf7e9d6&quot;&gt;&lt;code&gt;147fc04&lt;/code&gt;&lt;/a&gt; Docs: Fix &lt;code&gt;repro:needed&lt;/code&gt; label in bug report template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14285&quot;&gt;#14285&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1cfde93eec71a15c2df1ad660a7a6171204ba80&quot;&gt;&lt;code&gt;e1cfde9&lt;/code&gt;&lt;/a&gt; Docs: Update bug report template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14276&quot;&gt;#14276&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c85c2f1138a9e952655f19ee780ab0c8e35431a8&quot;&gt;&lt;code&gt;c85c2f1&lt;/code&gt;&lt;/a&gt; Docs: Add fatal to Node.js API LintMessage type (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14251&quot;&gt;#14251&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c346c87fa83c6d1184fdafb9c0748c2e15a423d&quot;&gt;&lt;code&gt;0c346c8&lt;/code&gt;&lt;/a&gt; Chore: ignore &lt;code&gt;pnpm-lock.yaml&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14303&quot;&gt;#14303&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c981fb1994cd04914042ced1980aa86b68ba7be9&quot;&gt;&lt;code&gt;c981fb1&lt;/code&gt;&lt;/a&gt; Chore: Upgrade mocha to 8.3.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14278&quot;&gt;#14278&lt;/a&gt;) (Stephen Wade)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.23.0 released</title>
    <link href="https://eslint.org/blog/2021/03/eslint-v7.23.0-released/"/>
    <updated>2021-03-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/03/eslint-v7.23.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;no-sequences&lt;/a&gt; rule has a new option &lt;code&gt;allowInParentheses&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/687ccae517b8b815cf21e948f80d22e2bf118a99&quot;&gt;&lt;code&gt;687ccae&lt;/code&gt;&lt;/a&gt; Update: add option “allowInParentheses” to &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;no-sequences&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14197&quot;&gt;#14197&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14199&quot;&gt;#14199&lt;/a&gt;) (Daniel Rentz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/43f1685356b9840e09631843ad9ccf0440a498b0&quot;&gt;&lt;code&gt;43f1685&lt;/code&gt;&lt;/a&gt; Update: &lt;code&gt;--quiet&lt;/code&gt; should not supress &lt;code&gt;--max-warnings&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14202&quot;&gt;#14202&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14242&quot;&gt;#14242&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8984c91372e64d1e8dd2ce21b87b80977d57bff9&quot;&gt;&lt;code&gt;8984c91&lt;/code&gt;&lt;/a&gt; Update: eslint --env-info output os info (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14059&quot;&gt;#14059&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28583eb8ada20f32579841bec3fbd60a018d5931&quot;&gt;&lt;code&gt;28583eb&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-operators&quot;&gt;no-mixed-operators&lt;/a&gt; false positives with &lt;code&gt;? :&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14223&quot;&gt;#14223&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14226&quot;&gt;#14226&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a99eb2dc2a297d16e40a9feef3956668716c4eb5&quot;&gt;&lt;code&gt;a99eb2d&lt;/code&gt;&lt;/a&gt; Fix: Clarify line breaks in &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14024&quot;&gt;#14024&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14063&quot;&gt;#14063&lt;/a&gt;) (armin yahya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/909c7271b8d294bd884827ad5df02615b6ec5e82&quot;&gt;&lt;code&gt;909c727&lt;/code&gt;&lt;/a&gt; Docs: Add valid example that shows vars in a block scope (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14230&quot;&gt;#14230&lt;/a&gt;) (Ed S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebd70263f6e6fe597613d90f4b8de84710c2f3d6&quot;&gt;&lt;code&gt;ebd7026&lt;/code&gt;&lt;/a&gt; Docs: Fix typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14225&quot;&gt;#14225&lt;/a&gt;) (Greg Finley)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/49d16977d969070e5240074e76036f56631a90d3&quot;&gt;&lt;code&gt;49d1697&lt;/code&gt;&lt;/a&gt; Chore: Upgrade eslint-plugin-jsdoc to v25 and remove --legacy-peer-deps (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14244&quot;&gt;#14244&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.22.0 released</title>
    <link href="https://eslint.org/blog/2021/03/eslint-v7.22.0-released/"/>
    <updated>2021-03-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/03/eslint-v7.22.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f62ec8d30d925e70e4d0d40640857c587ac2e116&quot;&gt;&lt;code&gt;f62ec8d&lt;/code&gt;&lt;/a&gt; Update: throw error when fix range is invalid (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14142&quot;&gt;#14142&lt;/a&gt;) (Jacob Bandes-Storch)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ad91aa7df3d6bc185786e6eccd9e055fd951055&quot;&gt;&lt;code&gt;5ad91aa&lt;/code&gt;&lt;/a&gt; Update: report es2021 globals in &lt;a href=&quot;https://eslint.org/docs/rules/no-extend-native&quot;&gt;no-extend-native&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13602&quot;&gt;#13602&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14177&quot;&gt;#14177&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a432d82b3a5710aff7da20302fe0b94fedc46c2&quot;&gt;&lt;code&gt;3a432d8&lt;/code&gt;&lt;/a&gt; Docs: Improve documentation for &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14168&quot;&gt;#14168&lt;/a&gt;) (Serkan Özel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ba029fbffd44068be93254890fc2aec3e92c212&quot;&gt;&lt;code&gt;3ba029f&lt;/code&gt;&lt;/a&gt; Docs: Remove Extraneous Dash (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14164&quot;&gt;#14164&lt;/a&gt;) (Danny Hurlburt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ddf361ca2a2a01a9974f421e5f62270df282d0e8&quot;&gt;&lt;code&gt;ddf361c&lt;/code&gt;&lt;/a&gt; Docs: Fix Formatting (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14154&quot;&gt;#14154&lt;/a&gt;) (Danny Hurlburt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8df03efe3bc47665d2112c2cdd5bead337d475d&quot;&gt;&lt;code&gt;a8df03e&lt;/code&gt;&lt;/a&gt; Docs: Clarify triage process (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14117&quot;&gt;#14117&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0eecad271358f753730741fcfcb2f7cc915c1fa7&quot;&gt;&lt;code&gt;0eecad2&lt;/code&gt;&lt;/a&gt; Upgrade: Update lodash in package.json to V 4.17.21 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14159&quot;&gt;#14159&lt;/a&gt;) (Basem Al-Nabulsi)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c295581aca4e08ec4ae8e5ee5726a6f454a3ee26&quot;&gt;&lt;code&gt;c295581&lt;/code&gt;&lt;/a&gt; Chore: remove leftover JSDoc from lint-result-cache (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14176&quot;&gt;#14176&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d541f9d9d58966372e2055a8f69fb9483d56a4b&quot;&gt;&lt;code&gt;0d541f9&lt;/code&gt;&lt;/a&gt; Chore: Reduce lodash usage (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14178&quot;&gt;#14178&lt;/a&gt;) (Stephen Wade)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/459d821f4a599501ceb002f9d7a5034fc45ffbb0&quot;&gt;&lt;code&gt;459d821&lt;/code&gt;&lt;/a&gt; Chore: upgrade dependencies of browser test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14127&quot;&gt;#14127&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.21.0 released</title>
    <link href="https://eslint.org/blog/2021/02/eslint-v7.21.0-released/"/>
    <updated>2021-02-27T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/02/eslint-v7.21.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The new &lt;a href=&quot;https://eslint.org/docs/user-guide/command-line-interface#-cache-strategy&quot;&gt;&lt;code&gt;--cache-strategy&lt;/code&gt; CLI option&lt;/a&gt; can improve how ESlint detects changed files by looking at either file metadata or contents.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/08ae31e539e381cd0eabf6393fa5c20f1d59125f&quot;&gt;&lt;code&gt;08ae31e&lt;/code&gt;&lt;/a&gt; New: Implement cacheStrategy (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/63&quot;&gt;eslint/rfcs#63&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14119&quot;&gt;#14119&lt;/a&gt;) (Manu Chambon)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e51fd28dc773c11c924450d24088f97f2824f00&quot;&gt;&lt;code&gt;5e51fd2&lt;/code&gt;&lt;/a&gt; Update: do not ignore symbolic links (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13551&quot;&gt;#13551&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13615&quot;&gt;#13615&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14126&quot;&gt;#14126&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8aea9988b6451b6a05af4f3ede8d6ed5c1d9926&quot;&gt;&lt;code&gt;b8aea99&lt;/code&gt;&lt;/a&gt; Fix: pluralize ‘line’ to ‘lines’ in &lt;a href=&quot;https://eslint.org/docs/rules/max-lines-per-function&quot;&gt;max-lines-per-function&lt;/a&gt; description (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14115&quot;&gt;#14115&lt;/a&gt;) (Trevin Hofmann)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3cd5440b94d5fa4f11a09f50b685f6150f0c2d41&quot;&gt;&lt;code&gt;3cd5440&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/eslintrc to 0.4.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14147&quot;&gt;#14147&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c0b8c71df4d0b3f54b20587432d9133741985d5c&quot;&gt;&lt;code&gt;c0b8c71&lt;/code&gt;&lt;/a&gt; Upgrade: Puppeteer to 7.1.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14122&quot;&gt;#14122&lt;/a&gt;) (Tim van der Lippe)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87c43a5d7ea2018cffd6d9b5c431ecb60caaf0d6&quot;&gt;&lt;code&gt;87c43a5&lt;/code&gt;&lt;/a&gt; Chore: improve a few comments and fix typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14125&quot;&gt;#14125&lt;/a&gt;) (Tobias Nießen)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Nx becomes ESLint gold sponsor</title>
    <link href="https://eslint.org/blog/2021/02/nx-gold-sponsor-eslint/"/>
    <updated>2021-02-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/02/nx-gold-sponsor-eslint/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog-covers/sponsorship-nx.png&quot; alt=&quot;Nx Donates to ESLint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We are happy to share that &lt;a href=&quot;https://nx.dev/&quot;&gt;Nx&lt;/a&gt; has become an ESLint gold sponsor, donating $1,000 each month for the ongoing maintenance and development of ESLint! Nx is a front-end focused set of tools for working with web applications, with a special focus on monorepo setups.&lt;/p&gt;
&lt;p&gt;Here’s what the folks at Nx had to say about ESLint:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Nx uses ESLint to enforce code quality, library boundaries, and project visibility constraints. ESLint makes Nx more powerful, so on behalf of the Nx.dev community, we’re proud to do our part and sponsor ESLint’s continued success!”
– Jeff Cross, Co-founder and Principal Architect at Nrwl&lt;/p&gt;
&lt;p&gt;“We help many companies build large systems using Nx. To keep them maintainable, it’s important to follow community and org-specific best practices, and ESLint makes it easy.”
– Victor Savkin, Co-founder at Nrwl&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ESLint is grateful for the support of the Nx team and we are putting these funds to work by paying more contributors to help maintain and develop ESLint. Due to the support of companies like Nx, ESLint is well-positioned to continue being actively maintained for the foreseeable future.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.20.0 released</title>
    <link href="https://eslint.org/blog/2021/02/eslint-v7.20.0-released/"/>
    <updated>2021-02-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/02/eslint-v7.20.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-expressions&quot;&gt;no-unused-expressions&lt;/a&gt; rule has a new option &lt;code&gt;enforceForJSX&lt;/code&gt; to flag unused JSX elements.&lt;/li&gt;
&lt;li&gt;The following selectors have been updated to support JSX and custom parsers: &lt;code&gt;:first-child&lt;/code&gt;, &lt;code&gt;:last-child&lt;/code&gt;, &lt;code&gt;:nth-child(n)&lt;/code&gt;, &lt;code&gt;:nth-last-child(n)&lt;/code&gt;, sibling &lt;code&gt;~&lt;/code&gt;, and adjacent sibling &lt;code&gt;+&lt;/code&gt;. All &lt;a href=&quot;https://eslint.org/docs/developer-guide/selectors&quot;&gt;selectors&lt;/a&gt; now support JSX and custom parsers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad9076183bc2c2029525edfc4596e403999348d1&quot;&gt;&lt;code&gt;ad90761&lt;/code&gt;&lt;/a&gt; Update: add enforceForJSX option to &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-expressions&quot;&gt;no-unused-expressions&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14012&quot;&gt;#14012&lt;/a&gt;) (Duncan Beevers)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9d6063add931f0803cae1676d5df307baf114360&quot;&gt;&lt;code&gt;9d6063a&lt;/code&gt;&lt;/a&gt; Fix: Crash with esquery when using JSX (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13639&quot;&gt;#13639&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14072&quot;&gt;#14072&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6c84af67318537177ffac0120a81af08e3e9df4&quot;&gt;&lt;code&gt;d6c84af&lt;/code&gt;&lt;/a&gt; Fix: &lt;code&gt;--init&lt;/code&gt; autoconfig shouldn’t add deprecated rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/14017&quot;&gt;#14017&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14060&quot;&gt;#14060&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b277a16a7261e51b7ba36d6de7f996e9203a6a4&quot;&gt;&lt;code&gt;9b277a1&lt;/code&gt;&lt;/a&gt; Fix: Support ENOTDIR error code in the folder existence checking utility (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13973&quot;&gt;#13973&lt;/a&gt;) (Constantine Genchevsky)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f4ac3b0e7072fbd3c14e9c64ff0c2c255a4eb730&quot;&gt;&lt;code&gt;f4ac3b0&lt;/code&gt;&lt;/a&gt; Docs: fix sibling selector descriptions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14099&quot;&gt;#14099&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a0871f1840060bd23cfe0952a096b107142db2f0&quot;&gt;&lt;code&gt;a0871f1&lt;/code&gt;&lt;/a&gt; Docs: Triage process (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14014&quot;&gt;#14014&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4e2af5db1c29343ffec2cd104b04bf39b77ee56&quot;&gt;&lt;code&gt;b4e2af5&lt;/code&gt;&lt;/a&gt; Docs: Add more fields to bug report template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14039&quot;&gt;#14039&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7aeb12798f2b9da706f3593f26a02e717929c9af&quot;&gt;&lt;code&gt;7aeb127&lt;/code&gt;&lt;/a&gt; Upgrade: pin @babel/code-frame@7.12.11 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14067&quot;&gt;#14067&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb27b0abeda6dfee55dd43b9cbe12afad321f55d&quot;&gt;&lt;code&gt;cb27b0a&lt;/code&gt;&lt;/a&gt; Build: package.json update for eslint-config-eslint release (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.19.0 released</title>
    <link href="https://eslint.org/blog/2021/01/eslint-v7.19.0-released/"/>
    <updated>2021-01-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/01/eslint-v7.19.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;With this release, we’re excited to publish our revamped &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring/&quot;&gt;configuration guide&lt;/a&gt;.
Technical writer &lt;a href=&quot;https://github.com/khawarlatifkhan&quot;&gt;Khawar Latif Khan&lt;/a&gt; spent the last several months since our Google Season of Docs &lt;a href=&quot;https://eslint.org/blog/2020/08/eslint-google-season-of-docs-project-writer&quot;&gt;project announcement&lt;/a&gt; digging into and improving what used to be a single dense page.
The &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring/&quot;&gt;new documentation&lt;/a&gt; is logically organized with readability improvements throughout.
Thank you Khawar!&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce7f06121d9eb9cc2b3da24b4456b4d382e1413b&quot;&gt;&lt;code&gt;ce7f061&lt;/code&gt;&lt;/a&gt; Update: add shadowed variable loc to message in &lt;a href=&quot;https://eslint.org/docs/rules/no-shadow&quot;&gt;no-shadow&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13646&quot;&gt;#13646&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13841&quot;&gt;#13841&lt;/a&gt;) (t-mangoe)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c60e23ff306a14ca6eabcadb275ed27995fcc6e4&quot;&gt;&lt;code&gt;c60e23f&lt;/code&gt;&lt;/a&gt; Update: fix &lt;code&gt;let&lt;/code&gt; logic in for-in and for-of loops in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14011&quot;&gt;#14011&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a078b9166f29cb3760435ddbc1a0da4a0974d4a&quot;&gt;&lt;code&gt;1a078b9&lt;/code&gt;&lt;/a&gt; Update: check ternary &lt;code&gt;:&lt;/code&gt; even if &lt;code&gt;?&lt;/code&gt; was reported in &lt;a href=&quot;https://eslint.org/docs/rules/space-infix-ops&quot;&gt;space-infix-ops&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13963&quot;&gt;#13963&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c309ebca4a81a0faf397103dbc621019dea8c9c&quot;&gt;&lt;code&gt;1c309eb&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;no-invalid-regexp&lt;/a&gt; false negatives with no flags specified (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14018&quot;&gt;#14018&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d76e8f69bd791357c67ada7b5c55608acf29b622&quot;&gt;&lt;code&gt;d76e8f6&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-rename&quot;&gt;no-useless-rename&lt;/a&gt; invalid autofix with parenthesized identifiers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14032&quot;&gt;#14032&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1da90fc414a3c9c16f52db4a5bd81bd4f9532a4&quot;&gt;&lt;code&gt;e1da90f&lt;/code&gt;&lt;/a&gt; Fix: nested indenting for offsetTernaryExpressions: true (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13971&quot;&gt;#13971&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13972&quot;&gt;#13972&lt;/a&gt;) (Chris Brody)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb274226242eaebc1480fc9c901202986afc3c8a&quot;&gt;&lt;code&gt;fb27422&lt;/code&gt;&lt;/a&gt; Fix: extend &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;prefer-const&lt;/a&gt; fixer range to whole declaration (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13899&quot;&gt;#13899&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14033&quot;&gt;#14033&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5800d921144ec330b6ee7cd03364434007331354&quot;&gt;&lt;code&gt;5800d92&lt;/code&gt;&lt;/a&gt; Docs: Clarify stylistic rule update policy (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14052&quot;&gt;#14052&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0ccf6d200147437b338cadb34546451972befd75&quot;&gt;&lt;code&gt;0ccf6d2&lt;/code&gt;&lt;/a&gt; Docs: remove &lt;a href=&quot;http://configuring.md/&quot;&gt;configuring.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14036&quot;&gt;#14036&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0b05c704f3ce6f549d14718236d22fe49fcb611&quot;&gt;&lt;code&gt;e0b05c7&lt;/code&gt;&lt;/a&gt; Docs: add a correct example to &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-optional-chaining&quot;&gt;no-unsafe-optional-chaining&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/14029&quot;&gt;#14029&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14050&quot;&gt;#14050&lt;/a&gt;) (armin yahya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fc4fa485ca9ccd5e16dbc7e53ba31452d22dc4a&quot;&gt;&lt;code&gt;3fc4fa4&lt;/code&gt;&lt;/a&gt; Docs: update configuring links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14038&quot;&gt;#14038&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8561c2116ef89e53ebffb750066f1b00a4acdb76&quot;&gt;&lt;code&gt;8561c21&lt;/code&gt;&lt;/a&gt; Docs: fix broken links in configuring/README.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14046&quot;&gt;#14046&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6602d569427e9e2a4f3b5ca3fc3a8bffb28d15e&quot;&gt;&lt;code&gt;f6602d5&lt;/code&gt;&lt;/a&gt; Docs: Reorganize Configuration Documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13837&quot;&gt;#13837&lt;/a&gt;) (klkhan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a4fdb7001aa41b9ad8bb92cc8a47b9135c94afc7&quot;&gt;&lt;code&gt;a4fdb70&lt;/code&gt;&lt;/a&gt; Docs: Fixed Typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14007&quot;&gt;#14007&lt;/a&gt;) (Yash Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7ca48165d025e01c38698352cff24d1de87cc8b&quot;&gt;&lt;code&gt;f7ca481&lt;/code&gt;&lt;/a&gt; Docs: Explain why we disable lock files (refs &lt;a href=&quot;https://github.com/eslint/tsc-meetings/issues/234&quot;&gt;eslint/tsc-meetings#234&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14006&quot;&gt;#14006&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/65bb0abde56f72586036fff151aa2d13f1b7be6c&quot;&gt;&lt;code&gt;65bb0ab&lt;/code&gt;&lt;/a&gt; Chore: Clean up new issue workflow (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14040&quot;&gt;#14040&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.18.0 released</title>
    <link href="https://eslint.org/blog/2021/01/eslint-v7.18.0-released/"/>
    <updated>2021-01-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/01/eslint-v7.18.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f17c3c371789ffa84f0cda57101e8193899adbe6&quot;&gt;&lt;code&gt;f17c3c3&lt;/code&gt;&lt;/a&gt; Update: check logical assignment operators in the &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;complexity&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13979&quot;&gt;#13979&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/179a910b32e853bc12a9dd71f7c10e762cbeac44&quot;&gt;&lt;code&gt;179a910&lt;/code&gt;&lt;/a&gt; Fix: --init crash on question to upgrade/downgrade ESLint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13978&quot;&gt;#13978&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13995&quot;&gt;#13995&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/292b1c0017bc442d399f67e01d699c59e6b71453&quot;&gt;&lt;code&gt;292b1c0&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; false positive with &lt;code&gt;let&lt;/code&gt; identifier in for-loop (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13981&quot;&gt;#13981&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/672deb057a14a7acad8c669189870009f1edb8a6&quot;&gt;&lt;code&gt;672deb0&lt;/code&gt;&lt;/a&gt; Docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;no-invalid-regexp&lt;/a&gt; docs regarding ecmaVersion (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13991&quot;&gt;#13991&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2687e71f9e2a2773f821c4dc1a02abe95b97df4&quot;&gt;&lt;code&gt;f2687e7&lt;/code&gt;&lt;/a&gt; Docs: update &lt;a href=&quot;https://eslint.org/docs/rules/space-in-parens&quot;&gt;space-in-parens&lt;/a&gt; related rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13985&quot;&gt;#13985&lt;/a&gt;) (Chris Brody)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4a38bbe81b4b29ca1a4e62d0a0cc8d525455b063&quot;&gt;&lt;code&gt;4a38bbe&lt;/code&gt;&lt;/a&gt; Docs: &lt;a href=&quot;https://eslint.org/docs/rules/space-in-parens&quot;&gt;space-in-parens&lt;/a&gt; examples with no arguments etc. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13987&quot;&gt;#13987&lt;/a&gt;) (Chris Brody)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6948f6bdc763dca0787bb2786bc9f6f9ed88f43&quot;&gt;&lt;code&gt;f6948f6&lt;/code&gt;&lt;/a&gt; Docs: Update semantic versioning policy (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13970&quot;&gt;#13970&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3264b26a625d926a1ea96df1c4b643af5c3797c&quot;&gt;&lt;code&gt;e3264b2&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/eslintrc to improve error message for invalid extends (&lt;a href=&quot;https://github.com/eslint/eslint/issues/14009&quot;&gt;#14009&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9250d167ceb5684669eabe93dae326e33f0684f2&quot;&gt;&lt;code&gt;9250d16&lt;/code&gt;&lt;/a&gt; Upgrade: Bump lodash to fix security issue (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13993&quot;&gt;#13993&lt;/a&gt;) (Frederik Prijck)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78cb48345c725e9f90fd0e631c476802244df4a4&quot;&gt;&lt;code&gt;78cb483&lt;/code&gt;&lt;/a&gt; Chore: test &lt;code&gt;foo( )&lt;/code&gt; with &lt;a href=&quot;https://eslint.org/docs/rules/space-in-parens&quot;&gt;space-in-parens&lt;/a&gt; option “always” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13986&quot;&gt;#13986&lt;/a&gt;) (Chris Brody)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aeba5e5e6062095a06d9b867d7e7ee75422f25b9&quot;&gt;&lt;code&gt;aeba5e5&lt;/code&gt;&lt;/a&gt; Chore: fix typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13975&quot;&gt;#13975&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Google Chrome becomes ESLint gold sponsor</title>
    <link href="https://eslint.org/blog/2021/01/chrome-gold-sponsor-eslint/"/>
    <updated>2021-01-13T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/01/chrome-gold-sponsor-eslint/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog-covers/sponsorship-chrome.png&quot; alt=&quot;Chrome Donates to ESLint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We are happy to share that &lt;a href=&quot;https://www.google.com/chrome/&quot;&gt;Google Chrome&lt;/a&gt; has become an ESLint gold sponsor sponsor, donating $1,000 each month for the ongoing maintenance and development of ESLint! The Chrome team is well known for supporting web developers around the world through not just developing the browser, but also through resources like &lt;a href=&quot;https://web.dev/&quot;&gt;web.dev&lt;/a&gt;, where they document and explain the latest web technologies.&lt;/p&gt;
&lt;p&gt;Here’s what Addy Osmani from the Chrome team told us:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“ESLint has been critical in helping developers write high-quality JavaScript for years. We love that it catches common issues early and often. With a high level of extensibility, ESLint’s ability to let teams enforce custom rules that work for them has been excellent for open-source projects and more.
Chrome is happy to sponsor ESLint to help web developers write consistently high-quality code. It’s an essential piece of the modern web development toolkit”
– Addy Osmani, Senior Staff Eng. Manager, Chrome&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ESLint is grateful for the support of the Chrome team and to Addy for recommending us for the sponsorship. It’s because of support from companies like Google that ESLint is able to receive ongoing maintenance and development by a team of people who work in their spare time.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.17.0 released</title>
    <link href="https://eslint.org/blog/2021/01/eslint-v7.17.0-released/"/>
    <updated>2021-01-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2021/01/eslint-v7.17.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/multiline-ternary&quot;&gt;multiline-ternary&lt;/a&gt; rule is now auto-fixable.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e128e775e9fa116a0ad68a071f1f0997589f8cd4&quot;&gt;&lt;code&gt;e128e77&lt;/code&gt;&lt;/a&gt; Update: check logical assignment in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13946&quot;&gt;#13946&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/535fe47fee6544b4957378f9408117c8318d4762&quot;&gt;&lt;code&gt;535fe47&lt;/code&gt;&lt;/a&gt; Update: use regexpp’s default ecmaVersion in &lt;a href=&quot;https://eslint.org/docs/rules/no-control-regex&quot;&gt;no-control-regex&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13969&quot;&gt;#13969&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/06498716bfba65ed8c7217917a29a07ad267193a&quot;&gt;&lt;code&gt;0649871&lt;/code&gt;&lt;/a&gt; Update: add autofix to rule &lt;a href=&quot;https://eslint.org/docs/rules/multiline-ternary&quot;&gt;multiline-ternary&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13958&quot;&gt;#13958&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/83e98cd48ce3d1acf729f4fb9be40cff332abd6e&quot;&gt;&lt;code&gt;83e98cd&lt;/code&gt;&lt;/a&gt; Fix: use regexpp’s default ecmaVersion in &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;no-invalid-regexp&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13968&quot;&gt;#13968&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6e7e3231bc43c989f8c953de8e0d328bac5eea0&quot;&gt;&lt;code&gt;f6e7e32&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;no-useless-escape&lt;/a&gt; wrong loc and fix with CRLF in template elements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13953&quot;&gt;#13953&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19c69c0293a98634ff0d4884a0cdabc1213ebcb4&quot;&gt;&lt;code&gt;19c69c0&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; shouldn’t split declaration if it isn’t in a statement list (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13959&quot;&gt;#13959&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7297363ea355d0e3b2a74aaec586126deb91fd93&quot;&gt;&lt;code&gt;7297363&lt;/code&gt;&lt;/a&gt; Docs: fix examples for &lt;a href=&quot;https://eslint.org/docs/rules/no-multi-str&quot;&gt;no-multi-str&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13966&quot;&gt;#13966&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e451b9664aface32ad9321eaf5619c875dc76553&quot;&gt;&lt;code&gt;e451b96&lt;/code&gt;&lt;/a&gt; Docs: update build tool for webpack (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13962&quot;&gt;#13962&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc4871369645c3409dc56ded7a555af8a9f63d51&quot;&gt;&lt;code&gt;cc48713&lt;/code&gt;&lt;/a&gt; Chore: refactor calculating range and loc in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;no-useless-escape&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13964&quot;&gt;#13964&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c3e9accce2f61b04ab699fd37c90703305281aa3&quot;&gt;&lt;code&gt;c3e9acc&lt;/code&gt;&lt;/a&gt; Chore: fix typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13960&quot;&gt;#13960&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.16.0 released</title>
    <link href="https://eslint.org/blog/2020/12/eslint-v7.16.0-released/"/>
    <updated>2020-12-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/12/eslint-v7.16.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a62ad6f03151358b93b5fede022a30d67310705c&quot;&gt;&lt;code&gt;a62ad6f&lt;/code&gt;&lt;/a&gt; Update: fix false negative of &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; with NewExpression (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13930&quot;&gt;#13930&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f85b4c72668c95c79fdb342b74dbd53d21baa93f&quot;&gt;&lt;code&gt;f85b4c7&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;require-atomic-updates&lt;/a&gt; false positive across await (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11954&quot;&gt;#11954&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13915&quot;&gt;#13915&lt;/a&gt;) (buhi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/301d0c05229dbd6cfb1045d716524e8ec46fa2c1&quot;&gt;&lt;code&gt;301d0c0&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; false positives with unary expressions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13927&quot;&gt;#13927&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/555c128b49ae6d9c100a9f8429416417edb40d13&quot;&gt;&lt;code&gt;555c128&lt;/code&gt;&lt;/a&gt; Fix: false positive with await and ** in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12739&quot;&gt;#12739&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13923&quot;&gt;#13923&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab240d49833b4e6e594667c1abe5b0caa8a9cf70&quot;&gt;&lt;code&gt;ab240d4&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-exponentiation-operator&quot;&gt;prefer-exponentiation-operator&lt;/a&gt; invalid autofix with await (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13924&quot;&gt;#13924&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d93c9350361d2aa1a1976c553e47ab399e51e8c9&quot;&gt;&lt;code&gt;d93c935&lt;/code&gt;&lt;/a&gt; Docs: update JSON Schema links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13936&quot;&gt;#13936&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/924768377a4935a95a6ff3866f9545a5a6178b53&quot;&gt;&lt;code&gt;9247683&lt;/code&gt;&lt;/a&gt; Docs: Remove for deleted npm run profile script (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13931&quot;&gt;#13931&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2124e1b5dad30a905dc26bde9da472bf622d3f50&quot;&gt;&lt;code&gt;2124e1b&lt;/code&gt;&lt;/a&gt; Docs: Fix wrong rule name (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13913&quot;&gt;#13913&lt;/a&gt;) (noisyboy25)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26fc12f88109af9d4081bf0e16364c411bce3009&quot;&gt;&lt;code&gt;26fc12f&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d0c93a7ef9449c7b7d082bbb4b7d8465b0d6bac&quot;&gt;&lt;code&gt;8d0c93a&lt;/code&gt;&lt;/a&gt; Upgrade: table@6.0.4 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13920&quot;&gt;#13920&lt;/a&gt;) (Rouven Weßling)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dc7691103554a99bdb2142561cb507f50f547e3b&quot;&gt;&lt;code&gt;dc76911&lt;/code&gt;&lt;/a&gt; Chore: Add .pre-commit-hooks.yaml file (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13628&quot;&gt;#13628&lt;/a&gt;) (Álvaro Mondéjar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Automattic becomes ESLint&#39;s first platinum sponsor</title>
    <link href="https://eslint.org/blog/2020/12/automattic-platinum-sponsor-eslint/"/>
    <updated>2020-12-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/12/automattic-platinum-sponsor-eslint/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog-covers/sponsorship-automattic.png&quot; alt=&quot;Automattic Donates to ESLint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We are happy to share that &lt;a href=&quot;https://automattic.com/&quot;&gt;Automattic&lt;/a&gt; has become ESLint’s first platinum sponsor, donating $2,000 each month for the ongoing maintenance and development of ESLint! Automattic is the company behind &lt;a href=&quot;https://wordpress.com/&quot;&gt;WordPress.com&lt;/a&gt;, &lt;a href=&quot;https://woocommerce.com/&quot;&gt;WooCommerce&lt;/a&gt;, &lt;a href=&quot;https://jetpack.com/&quot;&gt;Jetpack&lt;/a&gt;, &lt;a href=&quot;https://simplenote.com/&quot;&gt;Simplenote&lt;/a&gt;, &lt;a href=&quot;https://longreads.com/&quot;&gt;Longreads&lt;/a&gt;, &lt;a href=&quot;https://vaultpress.com/&quot;&gt;VaultPress&lt;/a&gt;, &lt;a href=&quot;https://akismet.com/&quot;&gt;Akismet&lt;/a&gt;, &lt;a href=&quot;https://en.gravatar.com/&quot;&gt;Gravatar&lt;/a&gt;, &lt;a href=&quot;https://crowdsignal.com/&quot;&gt;Crowdsignal&lt;/a&gt;, &lt;a href=&quot;https://cloudup.com/&quot;&gt;Cloudup&lt;/a&gt;, &lt;a href=&quot;https://www.tumblr.com/&quot;&gt;Tumblr&lt;/a&gt;, and more. Further, Automattic believes  in open source and makes a lot of their work &lt;a href=&quot;https://github.com/Automattic&quot;&gt;public on GitHub&lt;/a&gt; and available via the GPL.&lt;/p&gt;
&lt;p&gt;Here’s what Automattic engineers told us about ESLint:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“ESLint helps us keep our code consistent and clean across hundreds of developers.”
&lt;br /&gt;– Marcus Kazmierczak, Engineering Team Lead, Automattic&lt;/p&gt;
&lt;p&gt;“ESLint lets me apply my brain to more important things.”
&lt;br /&gt;– Darren Ethier, Engineering Team Lead, Automattic&lt;/p&gt;
&lt;p&gt;“Unlike my variables, ESLint is always used.”
&lt;br /&gt;– Nadir Seghir, JavaScript Engineer, Automattic&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ESLint is honored and excited to be the first project that Automattic has sponsored through Open Collective. Support from companies like Automattic is why ESLint has been able to grow with the JavaScript ecosystem even after seven years in a rapidly changing landscape.&lt;/p&gt;
&lt;p&gt;A special thanks to &lt;a href=&quot;https://wptavern.com/author/sarah&quot;&gt;Sarah Gooding&lt;/a&gt; of &lt;a href=&quot;https://wptavern.com/&quot;&gt;WPTavern&lt;/a&gt; for her excellent article, &lt;a href=&quot;https://wptavern.com/eslint-maintainers-share-challenges-of-funding-open-source-utilities-through-sponsorship&quot;&gt;ESLint Maintainers Share Challenges of Funding Open Source Utilities through Sponsorship&lt;/a&gt;. We heard from Automattic that it was this article that put ESLint on the team’s radar. We are grateful both for the coverage and the insights shared about funding open source projects.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.15.0 released</title>
    <link href="https://eslint.org/blog/2020/12/eslint-v7.15.0-released/"/>
    <updated>2020-12-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/12/eslint-v7.15.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The new &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-optional-chaining&quot;&gt;no-unsafe-optional-chaining&lt;/a&gt; rule catches cases where short-circuiting &lt;code&gt;?.&lt;/code&gt; in an expression can cause a &lt;code&gt;TypeError&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/683ad00c41e1ae4d889deff82b2a94318e8c2129&quot;&gt;&lt;code&gt;683ad00&lt;/code&gt;&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-optional-chaining&quot;&gt;no-unsafe-optional-chaining&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13431&quot;&gt;#13431&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13859&quot;&gt;#13859&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cbc57fb7d07c00663ed5781f5e6bc8f534cc2d76&quot;&gt;&lt;code&gt;cbc57fb&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; autofixing for export (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13834&quot;&gt;#13834&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13891&quot;&gt;#13891&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/110cf962d05625a8a1bf7b5f4ec2194db150eb32&quot;&gt;&lt;code&gt;110cf96&lt;/code&gt;&lt;/a&gt; Docs: Fix a broken link in &lt;a href=&quot;http://working-with-rules.md/&quot;&gt;working-with-rules.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13875&quot;&gt;#13875&lt;/a&gt;) (Anton Niklasson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c11aabbe8249aeb8cad29bc6a33fc20c8c683ef&quot;&gt;&lt;code&gt;5c11aab&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/esintrc and espree for bug fixes (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13878&quot;&gt;#13878&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13908&quot;&gt;#13908&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0eb7957e27fd521317bd5c8479ce7abc1399169c&quot;&gt;&lt;code&gt;0eb7957&lt;/code&gt;&lt;/a&gt; Upgrade: file-entry-cache@6.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13877&quot;&gt;#13877&lt;/a&gt;) (Rouven Weßling)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.14.0 released</title>
    <link href="https://eslint.org/blog/2020/11/eslint-v7.14.0-released/"/>
    <updated>2020-11-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/11/eslint-v7.14.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-nonoctal-decimal-escape&quot;&gt;no-nonoctal-decimal-escape&lt;/a&gt; rule has been added. This rule disallows the use of legacy escape sequences &lt;code&gt;&#92;8&lt;/code&gt; and &lt;code&gt;&#92;9&lt;/code&gt; in string literals.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/98c00c41d2aecb3a990393d430694f4ce6b47de5&quot;&gt;&lt;code&gt;98c00c4&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-nonoctal-decimal-escape&quot;&gt;no-nonoctal-decimal-escape&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13765&quot;&gt;#13765&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13845&quot;&gt;#13845&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5f0907399a9666dec78c74384c8969c01483c30e&quot;&gt;&lt;code&gt;5f09073&lt;/code&gt;&lt;/a&gt; Update: fix ‘skip’ options in &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13852&quot;&gt;#13852&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13853&quot;&gt;#13853&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2004b7ecd3db0d4e7376cc3344246f7b9ada5801&quot;&gt;&lt;code&gt;2004b7e&lt;/code&gt;&lt;/a&gt; Fix: enable debug logs for @eslint/eslintrc (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13850&quot;&gt;#13850&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13861&quot;&gt;#13861&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d2239a1fdec452e24ede04e990d16d42516fa538&quot;&gt;&lt;code&gt;d2239a1&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-constructor&quot;&gt;no-useless-constructor&lt;/a&gt; crash on bodyless constructor (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13830&quot;&gt;#13830&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13842&quot;&gt;#13842&lt;/a&gt;) (Ari Perkkiö)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1861b4086f1018f43ab19744d866d5da986c500d&quot;&gt;&lt;code&gt;1861b40&lt;/code&gt;&lt;/a&gt; Docs: correct the &lt;a href=&quot;https://eslint.org/docs/rules/function-call-argument-newline&quot;&gt;function-call-argument-newline&lt;/a&gt; ‘default’ descriptions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13866&quot;&gt;#13866&lt;/a&gt;) (Trevin Hofmann)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eda0aa18498dd85eb618873e8e0f4ac97032cfca&quot;&gt;&lt;code&gt;eda0aa1&lt;/code&gt;&lt;/a&gt; Docs: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; is only for static imports (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13863&quot;&gt;#13863&lt;/a&gt;) (Robat Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/042ae44682a8a6c5037d920689124e2304056dd8&quot;&gt;&lt;code&gt;042ae44&lt;/code&gt;&lt;/a&gt; Docs: Fix JS syntax and doc URL in &lt;a href=&quot;http://working-with-custom-formatters.md/&quot;&gt;working-with-custom-formatters.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13828&quot;&gt;#13828&lt;/a&gt;) (Raphael LANG)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95d2fe6057498fc1cc2193d28c8c2d1593224b33&quot;&gt;&lt;code&gt;95d2fe6&lt;/code&gt;&lt;/a&gt; Chore: remove eslint comment from &lt;a href=&quot;https://eslint.org/docs/rules/no-octal-escape&quot;&gt;no-octal-escape&lt;/a&gt; tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13846&quot;&gt;#13846&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/038dc73c99ae68eae2035ef303f3a947053c8f05&quot;&gt;&lt;code&gt;038dc73&lt;/code&gt;&lt;/a&gt; Chore: Test on Node.js 15 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13844&quot;&gt;#13844&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.13.0 released</title>
    <link href="https://eslint.org/blog/2020/11/eslint-v7.13.0-released/"/>
    <updated>2020-11-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/11/eslint-v7.13.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#per-rule-performance&quot;&gt;Per-rule performance&lt;/a&gt; metrics can now show more than ten rules. Set the &lt;code&gt;TIMING&lt;/code&gt; environment variable to the desired list size or &lt;code&gt;all&lt;/code&gt; to display all rules.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;$ &lt;span class=&quot;token assign-left variable&quot;&gt;TIMING&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt; eslint lib&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;$ &lt;span class=&quot;token assign-left variable&quot;&gt;TIMING&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt; eslint lib&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;$ &lt;span class=&quot;token assign-left variable&quot;&gt;TIMING&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;all eslint lib&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/254e00fea8745ff5a8bcc8cb874fcfd02996d81b&quot;&gt;&lt;code&gt;254e00f&lt;/code&gt;&lt;/a&gt; New: Configurable List Size For Per-Rule Performance Metrics (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13812&quot;&gt;#13812&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c3c710ade7cd8654990f1adb55b58f038eab92d&quot;&gt;&lt;code&gt;6c3c710&lt;/code&gt;&lt;/a&gt; Docs: fix broken url in docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13815&quot;&gt;#13815&lt;/a&gt;) (SaintMalik)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb6fcbfe0a8c41b92f0a33ab90f159037bd195e2&quot;&gt;&lt;code&gt;fb6fcbf&lt;/code&gt;&lt;/a&gt; Docs: Fix reference to Code of Conduct (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13797&quot;&gt;#13797&lt;/a&gt;) (Tobias Nießen)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.12.1 released</title>
    <link href="https://eslint.org/blog/2020/10/eslint-v7.12.1-released/"/>
    <updated>2020-10-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/10/eslint-v7.12.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aeef485dc790571b1a82ac09904329e0226b66a9&quot;&gt;&lt;code&gt;aeef485&lt;/code&gt;&lt;/a&gt; Fix: Pass internal config paths in FileEnumerator default (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13789&quot;&gt;#13789&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13792&quot;&gt;#13792&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/08f33e8b9a353c3183be6f937785db7a30fb90eb&quot;&gt;&lt;code&gt;08f33e8&lt;/code&gt;&lt;/a&gt; Upgrade: @eslint/eslintrc to fix rule schema validation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13793&quot;&gt;#13793&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13794&quot;&gt;#13794&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.12.0 released</title>
    <link href="https://eslint.org/blog/2020/10/eslint-v7.12.0-released/"/>
    <updated>2020-10-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/10/eslint-v7.12.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cbf3585f1d6c60414c07380367a8b4505ee3538d&quot;&gt;&lt;code&gt;cbf3585&lt;/code&gt;&lt;/a&gt; Update: skip keyword check for fns in &lt;a href=&quot;https://eslint.org/docs/rules/space-before-blocks&quot;&gt;space-before-blocks&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13553&quot;&gt;#13553&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13712&quot;&gt;#13712&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfddcedace5587d662c840c2edf33062b54a178e&quot;&gt;&lt;code&gt;bfddced&lt;/code&gt;&lt;/a&gt; Update: remove suggestion if it didn’t provide a fix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13723&quot;&gt;#13723&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13772&quot;&gt;#13772&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5183b14a2420b42b4089fb134a61ae57142f31fd&quot;&gt;&lt;code&gt;5183b14&lt;/code&gt;&lt;/a&gt; Update: check template literal in &lt;a href=&quot;https://eslint.org/docs/rules/no-script-url&quot;&gt;no-script-url&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13775&quot;&gt;#13775&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/603de04cab5e700df12999af2918decd4da9d11b&quot;&gt;&lt;code&gt;603de04&lt;/code&gt;&lt;/a&gt; Update: treat all literals like boolean literal in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13245&quot;&gt;#13245&lt;/a&gt;) (Zen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05106212985cb1ffa1e6fa996a57f6fd2fc3c970&quot;&gt;&lt;code&gt;0510621&lt;/code&gt;&lt;/a&gt; Update: Fix &amp;amp;&amp;amp; vs || short-circuiting false negatives (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13634&quot;&gt;#13634&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13769&quot;&gt;#13769&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67c06059dd1ddcee6f369c650ce71220da1510c3&quot;&gt;&lt;code&gt;67c0605&lt;/code&gt;&lt;/a&gt; Update: check computed keys in &lt;a href=&quot;https://eslint.org/docs/rules/no-prototype-builtins&quot;&gt;no-prototype-builtins&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13088&quot;&gt;#13088&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13755&quot;&gt;#13755&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/256f656455b47bcf9ed3fc30fbf72532678f97da&quot;&gt;&lt;code&gt;256f656&lt;/code&gt;&lt;/a&gt; Fix: autofix shouldn’t produce template literals with &lt;code&gt;&#92;8&lt;/code&gt; or &lt;code&gt;&#92;9&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13737&quot;&gt;#13737&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b165aa5f4d4d19328f13ab80e5f058cbce94c3a6&quot;&gt;&lt;code&gt;b165aa5&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;yoda&lt;/a&gt; rule autofix produces syntax errors with adjacent tokens (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13760&quot;&gt;#13760&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3175316db26aebef4b19e269aca90c8ce3955363&quot;&gt;&lt;code&gt;3175316&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; invalid autofix with comma operator (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13761&quot;&gt;#13761&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/637f8187404ded600fb3d4013b3cd495d5ae675b&quot;&gt;&lt;code&gt;637f818&lt;/code&gt;&lt;/a&gt; Docs: add more examples for &lt;a href=&quot;https://eslint.org/docs/rules/no-func-assign&quot;&gt;no-func-assign&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13705&quot;&gt;#13705&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13777&quot;&gt;#13777&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dee0f7764a1d5a323c89b22c4db94acee2b3c718&quot;&gt;&lt;code&gt;dee0f77&lt;/code&gt;&lt;/a&gt; Docs: add TOC to user-guide/configuring.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13727&quot;&gt;#13727&lt;/a&gt;) (metasean)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/145750991b04fd4cfb3fff3c5d4211a4428e011c&quot;&gt;&lt;code&gt;1457509&lt;/code&gt;&lt;/a&gt; Docs: fix broken links in Node.js API docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13771&quot;&gt;#13771&lt;/a&gt;) (Laura Barluzzi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c813d458f9aedf7a94351d137728a4647542879&quot;&gt;&lt;code&gt;7c813d4&lt;/code&gt;&lt;/a&gt; Docs: Fix typo in v7 migration page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13778&quot;&gt;#13778&lt;/a&gt;) (Yusuke Sasaki)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0257953be704d0bb387fc15afd7859fd6f19ba5&quot;&gt;&lt;code&gt;b025795&lt;/code&gt;&lt;/a&gt; Docs: Fix the format option name in the document (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13770&quot;&gt;#13770&lt;/a&gt;) (Hideki Igarashi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1faeb84e663d88c5d85a3cb3f15cd224cc552c2d&quot;&gt;&lt;code&gt;1faeb84&lt;/code&gt;&lt;/a&gt; Docs: clarify that &lt;a href=&quot;https://eslint.org/docs/rules/space-unary-ops&quot;&gt;space-unary-ops&lt;/a&gt; doesn’t apply when space is required (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13767&quot;&gt;#13767&lt;/a&gt;) (Taylor Morgan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a9f17151a4e93eb17c8a2bf4f0a5320cce616de&quot;&gt;&lt;code&gt;1a9f171&lt;/code&gt;&lt;/a&gt; Chore: Remove more ESLintRC-related files (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13481&quot;&gt;#13481&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13762&quot;&gt;#13762&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17cc0dd9b5d2d500359c36881cd3e5637443c133&quot;&gt;&lt;code&gt;17cc0dd&lt;/code&gt;&lt;/a&gt; Chore: add test case for &lt;a href=&quot;https://eslint.org/docs/rules/no-func-assign&quot;&gt;no-func-assign&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13705&quot;&gt;#13705&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13783&quot;&gt;#13783&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/84fd591c234accc41bb5af555f178825012fd35d&quot;&gt;&lt;code&gt;84fd591&lt;/code&gt;&lt;/a&gt; Chore: Increase Mocha timeout for copying fixtures (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13768&quot;&gt;#13768&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.11.0 released</title>
    <link href="https://eslint.org/blog/2020/10/eslint-v7.11.0-released/"/>
    <updated>2020-10-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/10/eslint-v7.11.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da78fa11632a2908db4ac494012a16f5d5a88a64&quot;&gt;&lt;code&gt;da78fa1&lt;/code&gt;&lt;/a&gt; Update: support async arrow fn in &lt;a href=&quot;https://eslint.org/docs/rules/function-paren-newline&quot;&gt;function-paren-newline&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13728&quot;&gt;#13728&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13729&quot;&gt;#13729&lt;/a&gt;) (Michal Dziekonski)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fa9429aac0ffed505f3f02e8fc75f646c69f5c61&quot;&gt;&lt;code&gt;fa9429a&lt;/code&gt;&lt;/a&gt; Fix: don’t count line after EOF in &lt;a href=&quot;https://eslint.org/docs/rules/max-lines&quot;&gt;max-lines&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13735&quot;&gt;#13735&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27f0de62e6281c28043be38ef051818c9edc15cd&quot;&gt;&lt;code&gt;27f0de6&lt;/code&gt;&lt;/a&gt; Fix: account for linebreaks before postfix &lt;code&gt;++&lt;/code&gt;/&lt;code&gt;--&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13731&quot;&gt;#13731&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d973675a5c06a2bd4f8ce640c78b67842cfebfd4&quot;&gt;&lt;code&gt;d973675&lt;/code&gt;&lt;/a&gt; Docs: Update anchor links to use existing linkrefs (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13715&quot;&gt;#13715&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13741&quot;&gt;#13741&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c6d774c89dcd14f386bd9d73d451fa2a892c3ef&quot;&gt;&lt;code&gt;2c6d774&lt;/code&gt;&lt;/a&gt; Docs: Fix typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13730&quot;&gt;#13730&lt;/a&gt;) (Frieder Bluemle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab0ac6c532fb7b7d49779c8913146244d680743b&quot;&gt;&lt;code&gt;ab0ac6c&lt;/code&gt;&lt;/a&gt; Docs: Fix anchor links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13715&quot;&gt;#13715&lt;/a&gt;) (Gary Moore)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe301b8cc0762d7f4edd59603ca51ed0ec0c2a43&quot;&gt;&lt;code&gt;fe301b8&lt;/code&gt;&lt;/a&gt; Docs: Add configuration comments in examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13738&quot;&gt;#13738&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc468c01021385a028de727eefcd442e7f34875c&quot;&gt;&lt;code&gt;cc468c0&lt;/code&gt;&lt;/a&gt; Upgrade: eslint-visitor-keys@2.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13732&quot;&gt;#13732&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/23e966f6cf2a6c6b699dff5d6950ece3cc396498&quot;&gt;&lt;code&gt;23e966f&lt;/code&gt;&lt;/a&gt; Chore: Refactor CLIEngine tests (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13481&quot;&gt;#13481&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13709&quot;&gt;#13709&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>A year of paying contributors: Review</title>
    <link href="https://eslint.org/blog/2020/10/year-paying-contributors-review/"/>
    <updated>2020-10-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/10/year-paying-contributors-review/</id>
    <content type="html">&lt;p&gt;It was in February of 2019 that we announced the launch of the &lt;a href=&quot;https://eslint.org/blog/2019/02/funding-eslint-future&quot;&gt;ESLint Collective&lt;/a&gt; to fund ESLint’s ongoing development. One of the primary reasons for seeking funding was due to the increasing amount of time required to maintain a project that, as of today, is downloaded over 13 million times each week. We waited until the last quarter of 2019 before we started paying contributors because we wanted to see what our monthly sponsorships would stabilize at and so we’d have some money saved to guarantee a certain amount would be available to pay contributors. Since then, we’ve tried a few different approaches with varying degrees of success and failure, and we’d like to share that experience.&lt;/p&gt;
&lt;h2 id=&quot;the-technical-steering-committee&quot; tabindex=&quot;-1&quot;&gt;The Technical Steering Committee&lt;/h2&gt;
&lt;p&gt;The Technical Steering Committee (TSC) is a group of five people who manage the overall direction of the ESLint project. Most of the work that goes into each ESLint release is done by TSC members, including the actual release process itself. Additionally, TSC members review issues and pull requests, as well as representing ESLint at outside events. All that is why we started by figuring out a way to pay TSC members, many of whom have been involved in the project for years prior to ESLint receiving funding.&lt;/p&gt;
&lt;p&gt;Here’s what we came up with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Each TSC member would be paid $50/hour for any contributions to ESLint. Contributions can include actual time working in GitHub, writing code or documentation, attending meetings (both ESLint meetings and external meetings where they represent ESLint), and providing support to the community (over e-mail, chat, etc.).&lt;/li&gt;
&lt;li&gt;Payments are capped at $1,000/month for each member. This cap exists primarily to ensure we are saving some portion of our monthly donations and secondarily to dissuade TSC members from spending too much time on the project in addition to their full time jobs. We don’t want to fund burnout.&lt;/li&gt;
&lt;li&gt;Later, we added a split of &lt;a href=&quot;https://tidelift.com/funding/github/npm/eslint&quot;&gt;Tidelift&lt;/a&gt; funds among the TSC members. We call this the “TSC stipend” and is paid each month to each TSC member regardless of their hourly contributions. The TSC stipend counts towards the $1,000/month limit for each member, and members can invoice the project for the difference between the hours they contributed and the Tidelift amount.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So far, this arrangement has worked exceedingly well. Since starting the TSC payments, we have seen TSC member participation slowly increase. There is something to be said for paying people for valuable work: when the work is explicitly valued, people are more willing to do it. Overall, we would call this part of our program a success.&lt;/p&gt;
&lt;h2 id=&quot;dedicated-maintainer&quot; tabindex=&quot;-1&quot;&gt;Dedicated maintainer&lt;/h2&gt;
&lt;p&gt;Back in November 2019, we &lt;a href=&quot;https://eslint.org/blog/2019/11/funding-update&quot;&gt;announced&lt;/a&gt; hiring longtime maintainer Kai Cataldo as a dedicated maintainer. Having recently left his full-time job, Kai wanted to spend more time working on ESLint. We didn’t have the budget to pay him a proper full-time salary for his work, so we agreed on 20 hours per week for $5,000/month, with Kai spending the other 20 hours of his week working on other projects or freelancing.&lt;/p&gt;
&lt;p&gt;We tried this for a few months before it became apparent that this arrangement wasn’t sustainable for Kai. While the payments from ESLint were steady, he had to spend a lot of his other 20 hours each week finding ways to make enough money. So, we updated the arrangement to be for 10 hours each week at $2,500, to give Kai more time to find other work while still providing a baseline amount of dedicated ESLint time.&lt;/p&gt;
&lt;p&gt;Unfortunately, that arrangement also did not work. Once again, splitting time between his ESLint duties and trying to find other part-time work proved to be a more difficult task than any of us realized, and this month, Kai decided to step down as a dedicated maintainer. He will remain on the TSC and still be eligible for the TSC member payments.&lt;/p&gt;
&lt;p&gt;This was a difficult thing for the team to work through, and we think there’s an important lesson about open source sustainability: even though we receive donations, ESLint doesn’t bring in enough to pay maintainers full-time. When that happens, maintainers face a difficult decision: we can try to make part-time development work, but it’s hard to find other part-time work to make up the monthly income we need to make it worthwhile. In some cases, doing the part-time work makes it more difficult to find other work because you are time-constrained in a way that other freelancers are not.&lt;/p&gt;
&lt;p&gt;We are currently rethinking how (and if) we’d like to pursue dedicated maintainers in the future given Kai’s experience.&lt;/p&gt;
&lt;h2 id=&quot;other-experiments&quot; tabindex=&quot;-1&quot;&gt;Other Experiments&lt;/h2&gt;
&lt;p&gt;Along with the TSC payments and hiring a dedicated maintainer, we’ve also tried several other things to distribute payments to more contributors. Our ultimate goal is to be able to pay most, if not all, contributors to ESLint because all contributions are helpful. We still haven’t thought through the details of how this will work, but we have tried several other experiments:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;For v7.0.0, we decided to give one-time payments of $250 to several contributors who made outsized contributions to the release. The contributors were both surprised and happy, but we also learned that there are some countries where regulations are very strict regarding what we in the United States call self-employment income. Not everyone was able to participate because of this.&lt;/li&gt;
&lt;li&gt;Longtime contributor Kevin Partington had started spending a lot of time helping out community members in our &lt;a href=&quot;https://eslint.org/chat&quot;&gt;Discord&lt;/a&gt;, and to thank him for that, we started paying him $25/hour for any amount of help he provides. If you’ve ever stopped by our Discord and asked for help, there’s a good chance Kevin is the one who helped you out.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;wrapping-up&quot; tabindex=&quot;-1&quot;&gt;Wrapping up&lt;/h2&gt;
&lt;p&gt;Overall, we are always on the lookout for meaningful and impactful contributions to ESLint so we can reward pay people for those contributions. We will continue to experiment with paying contributors in different ways going forward as we look for ways to make ESLint sustainable for the foreseeable future.&lt;/p&gt;
&lt;p&gt;Not everything we tried has worked out, nor did we expect it to, but we firmly believe that it’s worth continuing to work on this problem. Maintaining a project like ESLint takes a lot of work and a lot of contributions from a lot of people. The only way for that to continue is to pay people for their time.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.10.0 released</title>
    <link href="https://eslint.org/blog/2020/09/eslint-v7.10.0-released/"/>
    <updated>2020-09-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/09/eslint-v7.10.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;New option &lt;code&gt;ignorePattern&lt;/code&gt; in the &lt;a href=&quot;https://eslint.org/docs/rules/no-inline-comments&quot;&gt;no-inline-comments&lt;/a&gt; rule.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/07d9bea7c6f953e8f754afffc9752edcee799431&quot;&gt;&lt;code&gt;07d9bea&lt;/code&gt;&lt;/a&gt; Update: Add ignorePattern to &lt;a href=&quot;https://eslint.org/docs/rules/no-inline-comments&quot;&gt;no-inline-comments&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13029&quot;&gt;#13029&lt;/a&gt;) (Edie Lemoine)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb44e93f4780e925a75a68ce2f7f6d065b5f756c&quot;&gt;&lt;code&gt;cb44e93&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; invalid autofix with computed property access (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13704&quot;&gt;#13704&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6919fbb83f86552b0f49ae749da866e4edc7c46a&quot;&gt;&lt;code&gt;6919fbb&lt;/code&gt;&lt;/a&gt; Docs: Clarify that ignorePattern should be a string (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13029&quot;&gt;#13029&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13718&quot;&gt;#13718&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d79bbe982930b53358d34ad91cc6e5eaac8ddede&quot;&gt;&lt;code&gt;d79bbe9&lt;/code&gt;&lt;/a&gt; Docs: fix typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13717&quot;&gt;#13717&lt;/a&gt;) (Alexander Liu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b8490ee6391c986b1314540a92b71d8c1e0efc4&quot;&gt;&lt;code&gt;9b8490e&lt;/code&gt;&lt;/a&gt; Docs: grammatical error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13687&quot;&gt;#13687&lt;/a&gt;) (rajdeep)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51674a4113a1ca877094606bbf4938ab06cc1aad&quot;&gt;&lt;code&gt;51674a4&lt;/code&gt;&lt;/a&gt; Docs: Add missing &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;quotes&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13714&quot;&gt;#13714&lt;/a&gt;) (Lucio Paiva)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/30b76c9a13fae3dff59f7db406d6c66f11152973&quot;&gt;&lt;code&gt;30b76c9&lt;/code&gt;&lt;/a&gt; Docs: Clarify package.json requirement in Getting Started (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13549&quot;&gt;#13549&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13696&quot;&gt;#13696&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/46c73b159a5ceed2f7f26f254fd97e459fb0e81a&quot;&gt;&lt;code&gt;46c73b1&lt;/code&gt;&lt;/a&gt; Upgrade: eslint-scope@5.1.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13716&quot;&gt;#13716&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7b12ba0bd4e9c66883f11e97de8ed84b600cdaa&quot;&gt;&lt;code&gt;b7b12ba&lt;/code&gt;&lt;/a&gt; Chore: Move comment to make tests more organized (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13707&quot;&gt;#13707&lt;/a&gt;) (Yusuke Tanaka)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c34a982aaf93a02348f56c9ce887c7dcf51b5bd&quot;&gt;&lt;code&gt;7c34a98&lt;/code&gt;&lt;/a&gt; Chore: remove mistakenly added file (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13710&quot;&gt;#13710&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Supporting ESLint&#39;s dependencies</title>
    <link href="https://eslint.org/blog/2020/09/supporting-eslint-dependencies/"/>
    <updated>2020-09-16T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/09/supporting-eslint-dependencies/</id>
    <content type="html">&lt;p&gt;When ESLint first started accepting donations, it was with the explicit goal of creating a sustainable future for the project. In the short term, that meant ensuring we could compensate those who spent a significant amount of time on the project, but we always intended that to be a starting point and not an end. There is so much more that goes into open source sustainability and we wanted to be mindful of that as we continued to grow. That’s why we’re excited to announce that we’re now supporting several of the projects that ESLint itself is built upon.&lt;/p&gt;
&lt;p&gt;Sponsors choose to support ESLint because they have come to depend on ESLint, and as such, want to ensure that the project continues. Similarly, ESLint is built on top of smaller open source projects, and we feel like it is our responsibility to also help those projects thrive. We’re grateful to our sponsors for helping us get to 50% of our $20,000/month goal, and we feel that it’s time to spread some of that success to our dependencies. As such, we’ve budgeted part of our donations for our dependencies.&lt;/p&gt;
&lt;p&gt;Today we are happy to announce that we’ve started donating $100/month to each of the following projects (and one person):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://npmjs.com/package/ajv&quot;&gt;Ajv&lt;/a&gt; is a JSON schema validator that ESLint uses to validate configuration.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.11ty.dev/&quot;&gt;Eleventy&lt;/a&gt; is a Node.js-based static site generator that we use to create &lt;a href=&quot;http://eslint.org/&quot;&gt;eslint.org&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://sindresorhus.com/&quot;&gt;Sindre Sorhus&lt;/a&gt; is a prolific open source developer, and ESLint uses several of his modules, including &lt;a href=&quot;https://npmjs.com/package/chalk&quot;&gt;&lt;code&gt;chalk&lt;/code&gt;&lt;/a&gt;, &lt;a href=&quot;https://npmjs.com/package/globals&quot;&gt;&lt;code&gt;globals&lt;/code&gt;&lt;/a&gt;, &lt;a href=&quot;https://npmjs.com/package/import-fresh&quot;&gt;&lt;code&gt;import-fresh&lt;/code&gt;&lt;/a&gt;, &lt;a href=&quot;https://npmjs.com/package/strip-ansi&quot;&gt;&lt;code&gt;strip-ansi&lt;/code&gt;&lt;/a&gt;, and &lt;a href=&quot;https://npmjs.com/package/strip-json-comments&quot;&gt;&lt;code&gt;strip-json-comments&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We’re grateful to these projects, and all of our dependencies, for allowing us to build ESLint.&lt;/p&gt;
&lt;p&gt;And this is just the start. As our donations continue to grow, we anticipate being able to support more of our dependencies in the future. We envision a future where donations to large open source projects trickle down into their dependencies so the entire open source ecosystem can benefit.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.9.0 released</title>
    <link href="https://eslint.org/blog/2020/09/eslint-v7.9.0-released/"/>
    <updated>2020-09-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/09/eslint-v7.9.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6f87db7c318225e48ccbbf0bec8b3758ea839b82&quot;&gt;&lt;code&gt;6f87db7&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;id-length&lt;/a&gt; false negatives on Object.prototype property names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13670&quot;&gt;#13670&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ca27004ece5016ba7aed775f01ad13bc9282296&quot;&gt;&lt;code&gt;3ca2700&lt;/code&gt;&lt;/a&gt; Fix: Corrected notice for invalid (:) plugin names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13473&quot;&gt;#13473&lt;/a&gt;) (Josh Goldberg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29d1cdceedd6c056a39149723cf9ff2fbb260cbf&quot;&gt;&lt;code&gt;29d1cdc&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; removes comments (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13678&quot;&gt;#13678&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13682&quot;&gt;#13682&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/361ac4d895c15086fb4351d4dca1405b2fdc4bd5&quot;&gt;&lt;code&gt;361ac4d&lt;/code&gt;&lt;/a&gt; Fix: NonOctalDecimalIntegerLiteral is decimal integer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13588&quot;&gt;#13588&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13664&quot;&gt;#13664&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc5783d2ff9e3b0d7a1f9664928d49270b4a6c01&quot;&gt;&lt;code&gt;fc5783d&lt;/code&gt;&lt;/a&gt; Docs: Fix leaky anchors in v4 migration page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13635&quot;&gt;#13635&lt;/a&gt;) (Timo Tijhof)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f1d07f112be96c64dfdaa154aa9ac81985b16238&quot;&gt;&lt;code&gt;f1d07f1&lt;/code&gt;&lt;/a&gt; Docs: Provide install commands for Yarn (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13661&quot;&gt;#13661&lt;/a&gt;) (Nikita Baksalyar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4da0a7ca7995435bdfc116fd374eb0649470131&quot;&gt;&lt;code&gt;b4da0a7&lt;/code&gt;&lt;/a&gt; Docs: fix typo in working with plugins docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13683&quot;&gt;#13683&lt;/a&gt;) (啸生)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f260716695064e4b4193337107b60401bd4b3f20&quot;&gt;&lt;code&gt;f260716&lt;/code&gt;&lt;/a&gt; Docs: update outdated link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13677&quot;&gt;#13677&lt;/a&gt;) (klkhan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5138c913c256e4266ffb68278783af45bf70af84&quot;&gt;&lt;code&gt;5138c91&lt;/code&gt;&lt;/a&gt; Docs: add missing eslint directive comments in &lt;a href=&quot;https://eslint.org/docs/rules/no-await-in-loop&quot;&gt;no-await-in-loop&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13673&quot;&gt;#13673&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17b58b528df62bf96813d50c087cafdf83306810&quot;&gt;&lt;code&gt;17b58b5&lt;/code&gt;&lt;/a&gt; Docs: clarify correct example in &lt;a href=&quot;https://eslint.org/docs/rules/no-return-await&quot;&gt;no-return-await&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13656&quot;&gt;#13656&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13657&quot;&gt;#13657&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9171f0a99bb4d7c53f109b1c2b215004a7c27713&quot;&gt;&lt;code&gt;9171f0a&lt;/code&gt;&lt;/a&gt; Chore: fix typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13660&quot;&gt;#13660&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.8.1 released</title>
    <link href="https://eslint.org/blog/2020/09/eslint-v7.8.1-released/"/>
    <updated>2020-09-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/09/eslint-v7.8.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f542b5d0679b73326ad249fc44a54c3f848bd3e6&quot;&gt;&lt;code&gt;f542b5d&lt;/code&gt;&lt;/a&gt; Fix: Update broken @eslint/eslintrc version (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13641&quot;&gt;#13641&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13647&quot;&gt;#13647&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.8.0 released</title>
    <link href="https://eslint.org/blog/2020/08/eslint-v7.8.0-released/"/>
    <updated>2020-08-31T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/08/eslint-v7.8.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Support for &lt;a href=&quot;https://github.com/tc39/proposal-logical-assignment&quot;&gt;logical assignment operators&lt;/a&gt; and &lt;a href=&quot;https://github.com/tc39/proposal-numeric-separator&quot;&gt;numeric separators&lt;/a&gt; has landed in ESLint! To enable linting this syntax, please set &lt;code&gt;ecmaVersion&lt;/code&gt; to &lt;code&gt;2021&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token property&quot;&gt;&quot;parserOptions&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token property&quot;&gt;&quot;ecmaVersion&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2021&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58abd9311900a8af5a3c0963daaf64675bdd8383&quot;&gt;&lt;code&gt;58abd93&lt;/code&gt;&lt;/a&gt; Update: support logical assignments in code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13569&quot;&gt;#13569&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13612&quot;&gt;#13612&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db7488e6326fd1b7ea04c5062beb1c5f75fc15ed&quot;&gt;&lt;code&gt;db7488e&lt;/code&gt;&lt;/a&gt; Update: support logical assignments in core rules (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13569&quot;&gt;#13569&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13618&quot;&gt;#13618&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88a9ade7643bb166efbab45cee15f3269496f4be&quot;&gt;&lt;code&gt;88a9ade&lt;/code&gt;&lt;/a&gt; Update: add es2021 environment (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13602&quot;&gt;#13602&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13603&quot;&gt;#13603&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0003dc0f966f2b47555595586f84eb3163cb0179&quot;&gt;&lt;code&gt;0003dc0&lt;/code&gt;&lt;/a&gt; Update: support numeric separators (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13568&quot;&gt;#13568&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13581&quot;&gt;#13581&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/96b11a0717bf32b94ec768611574372320fb774b&quot;&gt;&lt;code&gt;96b11a0&lt;/code&gt;&lt;/a&gt; Update: Add exceptionPatterns to &lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;id-length&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13094&quot;&gt;#13094&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13576&quot;&gt;#13576&lt;/a&gt;) (sodam)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3439fea5c0ed330d01d874b0c9df51dd51ae792c&quot;&gt;&lt;code&gt;3439fea&lt;/code&gt;&lt;/a&gt; Update: support numeric-separator in &lt;a href=&quot;https://eslint.org/docs/rules/no-loss-of-precision&quot;&gt;no-loss-of-precision&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13568&quot;&gt;#13568&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13574&quot;&gt;#13574&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed64767859d776145d68145419a61f5379b4dd63&quot;&gt;&lt;code&gt;ed64767&lt;/code&gt;&lt;/a&gt; Update: add comment to message in &lt;a href=&quot;https://eslint.org/docs/rules/no-warning-comments&quot;&gt;no-warning-comments&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12327&quot;&gt;#12327&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13522&quot;&gt;#13522&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66442a9faf9872db4a40f56dde28c48f4d02fc7b&quot;&gt;&lt;code&gt;66442a9&lt;/code&gt;&lt;/a&gt; Update: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-magic-numbers&quot;&gt;no-magic-numbers&lt;/a&gt; ‘ignoreDefaultValues’ option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12611&quot;&gt;#12611&lt;/a&gt;) (Dieter Luypaert)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/372921924778f2e525535985e17c97b988546210&quot;&gt;&lt;code&gt;3729219&lt;/code&gt;&lt;/a&gt; Docs: Update Step 1 of Development Environment documentation (klkhan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/483bf7f3cc40e0d866798d6ca9ee1c19aa77ddd2&quot;&gt;&lt;code&gt;483bf7f&lt;/code&gt;&lt;/a&gt; Docs: fix examples in &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13605&quot;&gt;#13605&lt;/a&gt;) (Soobin Bak)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c35d57b0a5f374cc55f1727a7561bcab1962e83&quot;&gt;&lt;code&gt;1c35d57&lt;/code&gt;&lt;/a&gt; Docs: Remove stale Keybase 2FA instructions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13622&quot;&gt;#13622&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4111d21a046b73892e2c84f92815a21ef4db63e1&quot;&gt;&lt;code&gt;4111d21&lt;/code&gt;&lt;/a&gt; Docs: Fix typo and missing article before noun in docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13611&quot;&gt;#13611&lt;/a&gt;) (Patrice Sandhu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b487164d01dd0bf66fdf2df0e374ce1c3bdb0339&quot;&gt;&lt;code&gt;b487164&lt;/code&gt;&lt;/a&gt; Docs: add exponentiation operators to &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;operator-assignment&lt;/a&gt; documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13577&quot;&gt;#13577&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/091e52ae1ca408f3e668f394c14d214c9ce806e6&quot;&gt;&lt;code&gt;091e52a&lt;/code&gt;&lt;/a&gt; Upgrade: espree@7.3.0 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13568&quot;&gt;#13568&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13609&quot;&gt;#13609&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a32032430a0779a4e3b2d137d4d0682844084b82&quot;&gt;&lt;code&gt;a320324&lt;/code&gt;&lt;/a&gt; Chore: Test formatted integers in &lt;a href=&quot;https://eslint.org/docs/rules/no-dupe-keys&quot;&gt;no-dupe-keys&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13568&quot;&gt;#13568&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13626&quot;&gt;#13626&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82669fa66670a00988db5b1d10fe8f3bf30be84e&quot;&gt;&lt;code&gt;82669fa&lt;/code&gt;&lt;/a&gt; Chore: Extract some functionality to eslintrc (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13481&quot;&gt;#13481&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13613&quot;&gt;#13613&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bdb65ec2e672c9815bee356b61d1cd60a1072152&quot;&gt;&lt;code&gt;bdb65ec&lt;/code&gt;&lt;/a&gt; Chore: add 3rd party parsers in BUG_REPORT template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13606&quot;&gt;#13606&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f954476fb6b0664679c73babd5e8a0647572b81f&quot;&gt;&lt;code&gt;f954476&lt;/code&gt;&lt;/a&gt; Chore: add common 3rd party parsers to issue template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13596&quot;&gt;#13596&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2bee6d256ae0516c9a9003bb3fdca24ff93253b5&quot;&gt;&lt;code&gt;2bee6d2&lt;/code&gt;&lt;/a&gt; Chore: Mark config-related files (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13481&quot;&gt;#13481&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13597&quot;&gt;#13597&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Announcing ESLint&#39;s public roadmap</title>
    <link href="https://eslint.org/blog/2020/08/eslint-public-roadmap/"/>
    <updated>2020-08-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/08/eslint-public-roadmap/</id>
    <content type="html">&lt;p&gt;When ESLint &lt;a href=&quot;https://eslint.org/blog/2019/02/funding-eslint-future&quot;&gt;first started accepting donations&lt;/a&gt;, we listed several ways that the project intended to spend the money donated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Paying team members for maintenance and development.&lt;/strong&gt; We hired our first part-time maintainer, &lt;a href=&quot;https://github.com/kaicataldo&quot;&gt;Kai Cataldo&lt;/a&gt;, and started paying TSC members on a per-hour basis up to $1,000 each month (the maximum we can afford at the moment).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rewarding contributions from the community.&lt;/strong&gt; We have given spot bonuses to people who have made significant contributions to ESLint.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improve documentation.&lt;/strong&gt; We are participating in the &lt;a href=&quot;https://eslint.org/blog/2020/08/eslint-google-season-of-docs-project-writer&quot;&gt;2020 Google Season of Docs&lt;/a&gt; to improve our documentation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better communication and support.&lt;/strong&gt; Paying team members has allowed us to participate in the monthly TC39 tooling meeting and allowed us to pay contributors to help answer questions both in GitHub and in Discord.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Developing a Roadmap.&lt;/strong&gt; Today, we are announcing our first public roadmap!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That last bullet point, developing a roadmap, is something we’ve been working hard to figure out for several months. Paying contributors has helped give us insights into how much development time we have each month and what we can reasonably expect in the future. Our roadmap is published as a &lt;a href=&quot;https://github.com/orgs/eslint/projects/1&quot;&gt;GitHub project&lt;/a&gt; so you can check to see the status of everything we’re working on. Here’s an overview:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;New configuration system.&lt;/strong&gt; We’ve been designing a new configuration system for the past year that is simpler and will hopefully both speed up ESLint as well as make creating plugins and shareable configs easier. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13481&quot;&gt;issue&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google Season of Docs participation.&lt;/strong&gt; The Season of Docs program takes several months to complete and will focus on overhauling the configuration documentation. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13130&quot;&gt;issue&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support switching repo branches from &lt;code&gt;master&lt;/code&gt; to &lt;code&gt;main&lt;/code&gt;.&lt;/strong&gt; In the long term, we will be switching the primary branch in each repo and need to update our tooling to support it. (&lt;a href=&quot;https://github.com/eslint/eslint-release/issues/42&quot;&gt;issue&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lint files in parallel.&lt;/strong&gt; A long-time desire of the community, we are working towards finally allowing you to lint multiple files in parallel to speed up your linting process. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/3565&quot;&gt;issue&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Items on the roadmap are large in scale and will take a significant amount of time to complete. Each item is something the team is committed to delivering within the next year, and as such, has a TSC member assigned to complete it. New items may be added any time the TSC decides to accept a feature and we have at least one TSC member committed to implementing it.&lt;/p&gt;
&lt;p&gt;We hope that this public roadmap will help us explain more about how our resources are allocated on an ongoing basis and just how your donations are contributing to the maintenance and development of ESLint.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Introducing the ESLint Google Season of Docs project and technical writer</title>
    <link href="https://eslint.org/blog/2020/08/eslint-google-season-of-docs-project-writer/"/>
    <updated>2020-08-19T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/08/eslint-google-season-of-docs-project-writer/</id>
    <content type="html">&lt;p&gt;This year, ESLint was accepted into the Google Season of Docs (GSoD) program for the first time (thanks, in large part, to our &lt;a href=&quot;https://opencollective.com/eslint&quot;&gt;sponsors&lt;/a&gt;). The ESLint team has always placed a high value on quality documentation for the project and we came up with a &lt;a href=&quot;https://github.com/eslint/eslint/issues/13130#issuecomment-614916040&quot;&gt;list of projects&lt;/a&gt; that we thought could improve our documentation. We received more than 20 applications through GSoD, and after a lot of time grading and reviewing applications, we finally ended up with our technical writer!&lt;/p&gt;
&lt;p&gt;It’s our pleasure to introduce Khawar Latif Khan, the 2020 ESLint GSoD technical writer. Here’s a little about Khawar, straight from him:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am an engineer turned communications specialist from Pakistan, with a passion to create helpful and understandable content. I have a graduate degree in Technical and Professional Communication from North Carolina State University, under the Fulbright Scholarship. During and after my undergraduate degree in Electrical Engineering, I got interested in communicating complex technical knowledge to people in simple terms, an area which most Engineering programs do not pay attention to. This drove me to change my major and serve as a bridge between the creators and the audience of technical information, both interacting with the same content but with different goals.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What interested Khawar in ESLint:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Despite the fact that I have been using open-source software for quite some time, my familiarity with the term is fairly new, similar to my knowledge of linting software. When I started learning Python (through edX), I did wonder how tiny errors can mess the whole code up. I thought it would be nice to have your codes tested, somehow, and get your errors identified, and then I came to know about the term “linting.” I haven’t aptly used linting software yet but I’m sure these will make my life a lot easier in the days to come.&lt;/p&gt;
&lt;p&gt;Working with ESLint will not only help me pursue my interests but also strengthen my connection with my engineering knowledge and technical background. My proposed project for ESLint, to reorganize/rewrite the configuration documentation, will focus on conducting a comprehensive content audit, improving the information architecture, and to make the content both useful and reusable. With the guidance of experienced personnel working at ESLint and a collaborative environment, I believe, will add great value to the documentation of ESLint.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Khawar submitted a proposal for reorganizing and rewriting our &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring&quot;&gt;configuration documentation&lt;/a&gt;, which right now contains a lot of information without a lot of structure. His proposal included a comprehensive plan for addressing the documentation, separated into these steps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Conducting a comprehensive content audit&lt;/li&gt;
&lt;li&gt;Create an Information Architecture to understand the flow of information&lt;/li&gt;
&lt;li&gt;Improve the Information Architecture to reorganize the documentation&lt;/li&gt;
&lt;li&gt;Identify links and references between different sections of the content&lt;/li&gt;
&lt;li&gt;Rewrite/Edit parts of the documentation, if necessary to meet the reconfiguration requirements&lt;/li&gt;
&lt;li&gt;Ensure the content is flexible and reusable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This proposal contained pages of information related to how each step will progress and how long each step is anticipated to take. This level of detail made us feel comfortable that Khawar understood the project’s goals and the amount of work involved.&lt;/p&gt;
&lt;p&gt;Khawar’s ESLint mentor will be Kai Cataldo. Kai is ESLint’s first paid dedicated maintainer, and having his time available is what allowed us to participate in GSoD this year. (Just one of the ways in which your &lt;a href=&quot;https://opencollective.com/eslint&quot;&gt;donations&lt;/a&gt; benefit the project.) Kai will work directly with Khawar to get him up to speed on the project and guide him through the process of updating the configuration documentation.&lt;/p&gt;
&lt;p&gt;We are very excited to be participating in GSoD for the first time and grateful to Khawar for taking this project on. Hopefully, this won’t be the last time the ESLint project is able to participate in GSoD and we look forward to sharing the results of this year’s project in the future.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.7.0 released</title>
    <link href="https://eslint.org/blog/2020/08/eslint-v7.7.0-released/"/>
    <updated>2020-08-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/08/eslint-v7.7.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;In &lt;a href=&quot;https://eslint.org/blog/2020/06/eslint-v7.3.0-released&quot;&gt;ESLint v7.3.0&lt;/a&gt;, we released a change to the &lt;code&gt;comma-dangle&lt;/code&gt; rule that &lt;a href=&quot;https://github.com/eslint/eslint/pull/13166&quot;&gt;disallowed having multiple options in the rule’s configuration&lt;/a&gt;. Our semantic versioning policy allows for changes that may introduce new errors in semver-minor releases if the change is considered a bug fix and, at the time, we decided that this change fell under that category. After discussing internally whether this was the correct application of our policy or not, we have decided to &lt;a href=&quot;https://github.com/eslint/eslint/pull/13563&quot;&gt;update our semantic versioning policy&lt;/a&gt; to include rule schemas as part of the public API and to revert this change in this release.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b46f3ee0dae4add9df99cae940b641ad8de58b9e&quot;&gt;&lt;code&gt;b46f3ee&lt;/code&gt;&lt;/a&gt; Update: allowFunctionParams option in &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle&quot;&gt;no-underscore-dangle&lt;/a&gt; (fixes 12579) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13545&quot;&gt;#13545&lt;/a&gt;) (Sunghyun Cho)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e0b672eb4bf39f7502a550b08b25a56a196f19f&quot;&gt;&lt;code&gt;4e0b672&lt;/code&gt;&lt;/a&gt; Fix: revert “Update: disallow multiple options in &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; schema” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13564&quot;&gt;#13564&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/254990e87914457ca25ea2d7ee012964e56fc9e5&quot;&gt;&lt;code&gt;254990e&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; for async arrow functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13497&quot;&gt;#13497&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13544&quot;&gt;#13544&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26aa2452b5f407fabc25dad21182180e4d3be532&quot;&gt;&lt;code&gt;26aa245&lt;/code&gt;&lt;/a&gt; Docs: clarify “case” specifier in &lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;padding-line-between-statements&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13562&quot;&gt;#13562&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/082891c042d72953fe86cd3ce9c96e661760793d&quot;&gt;&lt;code&gt;082891c&lt;/code&gt;&lt;/a&gt; Docs: Update semantic versioning policy (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13563&quot;&gt;#13563&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9124a1599638a1caf4b7e252d1cb66abdc5e51c6&quot;&gt;&lt;code&gt;9124a15&lt;/code&gt;&lt;/a&gt; Chore: remove leche (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13287&quot;&gt;#13287&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13533&quot;&gt;#13533&lt;/a&gt;) (Mark de Dios)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Microsoft donates $10,000 to ESLint as first FOSS Fund recipient</title>
    <link href="https://eslint.org/blog/2020/08/microsoft-donates-10000-to-eslint/"/>
    <updated>2020-08-13T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/08/microsoft-donates-10000-to-eslint/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog-covers/sponsorship-microsoft.png&quot; alt=&quot;Microsoft Donates to ESLint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We are happy to share that &lt;a href=&quot;https://microsoft.com/&quot;&gt;Microsoft&lt;/a&gt; has donated $10,000 to the ESLint project as part of their &lt;a href=&quot;https://opensource.microsoft.com/ecosystem/&quot;&gt;FOSS Fund&lt;/a&gt;. Similar to the &lt;a href=&quot;https://eslint.org/blog/2019/09/indeed-donates-10000-to-eslint&quot;&gt;Indeed FOSS Contributor Fund&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/blog/2020/08/salesforce-donates-10000-to-eslint&quot;&gt;Salesforce FOSS Contributor Fund&lt;/a&gt;, the Microsoft FOSS Fund donates $10,000 to qualifying open source projects each quarter. Microsoft employees who have contributed to an open source project that is both used by Microsoft and not an official Microsoft project may nominate and vote on potential project recipients. ESLint is honored to be the first recipient from the Microsoft FOSS Fund!&lt;/p&gt;
&lt;p&gt;Here’s what Microsoft’s Jan Pilzer and Steve Faulkner, who nominated ESLint, had to say:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“When I started working in JavaScript professionally many years ago, I realized there was potential of hidden errors and hard to detect problems. Looking into ways to improve the situation for me and my teams, I used various linting tools and was immediately captured by the potential and power of ESLint when it was created. Then and now, ESLint is an incredibly important tool in any JavaScript project I work on. It is the tool that makes large-scale web development possible and enjoyable for all developers.” – Jan Pilzer, Software Engineer, Microsoft&lt;/p&gt;
&lt;p&gt;“ESLint has become a critical part of our development tooling at Microsoft. It is as foundational as type checks or unit tests. Without it, we could not ship quality JavaScript and TypeScript code.” - Steve Faulkner, Senior Software Engineer, Microsoft&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We are grateful to Jan and Steve for nominating ESLint, and to all of the Microsoft employees who voted for ESLint. Already because of donations like these, ESLint has been able to hire our first part-time maintainer and convert our website from Jekyll to Eleventy. Financial support from companies like Microsoft, Salesforce, and Indeed are what will allow ESLint to be maintained and serve the JavaScript community for the foreseeable future.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Making ESLint more inclusive</title>
    <link href="https://eslint.org/blog/2020/08/making-eslint-more-inclusive/"/>
    <updated>2020-08-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/08/making-eslint-more-inclusive/</id>
    <content type="html">&lt;p&gt;From its beginning, the ESLint project has sought to be a place that is welcoming and inclusive of everyone. We adopted a code of conduct before doing so was common (even before we joined the jQuery Foundation, now the OpenJS Foundation) and the project has been maintained by a group of developers from all around the world, representing a variety of ethnicities, cultures, and countries. Even so, we understand that inclusivity is a process that must be adapted as we learn and grow. There is always some way to be more welcoming, and today we’re happy to share with you some of our recent efforts.&lt;/p&gt;
&lt;h2 id=&quot;eliminating-problematic-terminology&quot; tabindex=&quot;-1&quot;&gt;Eliminating problematic terminology&lt;/h2&gt;
&lt;p&gt;One of the areas where we’ve made changes in the project is through the use of more inclusive terminology. We recently did an audit of our codebase to look for words with negative connotations. In doing so, we discovered that we had a few instances of the word “blacklist” in the project, not just inside of code but also in the name of the &lt;code&gt;id-blacklist&lt;/code&gt; rule.&lt;/p&gt;
&lt;p&gt;In v7.4.0 we renamed the &lt;code&gt;id-blacklist&lt;/code&gt; rule to &lt;a href=&quot;https://eslint.org/docs/rules/id-denylist&quot;&gt;&lt;code&gt;id-denylist&lt;/code&gt;&lt;/a&gt; while providing a fallback so existing ESLint configs wouldn’t break. In v7.5.0 we officially deprecated the &lt;code&gt;id-blacklist&lt;/code&gt; rule. It’s our policy not to remove deprecated rules, but we will no longer be maintaining the &lt;code&gt;id-blacklist&lt;/code&gt; rule. Any further changes will be made only to the &lt;code&gt;id-denylist&lt;/code&gt; rule.&lt;/p&gt;
&lt;p&gt;Going forward, we will be avoiding the use of the following terms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Blacklist&lt;/li&gt;
&lt;li&gt;Whitelist&lt;/li&gt;
&lt;li&gt;Master&lt;/li&gt;
&lt;li&gt;Slave&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While not all of these words trace back to racist origins, they do all have negative connotations that can make people uncomfortable and perpetuate unconscious bias. We want ESLint to be a project that everyone is comfortable participating in, and proud of contributing to, and using more inclusive language helps.&lt;/p&gt;
&lt;h2 id=&quot;what-about-the-master-branch%3F&quot; tabindex=&quot;-1&quot;&gt;What about the master branch?&lt;/h2&gt;
&lt;p&gt;Like many open source projects, our primary development branch is called &lt;code&gt;master&lt;/code&gt;. We are in the process of transitioning each repository to use &lt;code&gt;main&lt;/code&gt; as the primary development branch. This will be a gradual rollout as we work through our least active repositories towards &lt;code&gt;eslint&lt;/code&gt;, our most active repository. A large amount of our infrastructure tooling assumes that &lt;code&gt;master&lt;/code&gt; is the primary development branch, so it will take us some time and we may need to wait for the &lt;a href=&quot;https://github.com/github/renaming&quot;&gt;GitHub tooling&lt;/a&gt; to complete this work.&lt;/p&gt;
&lt;h2 id=&quot;moving-forward&quot; tabindex=&quot;-1&quot;&gt;Moving forward&lt;/h2&gt;
&lt;p&gt;We want everyone to feel empowered to contribute to ESLint, and to know that when they do, they feel welcome, safe, and included. This latest small action is just a part of our ongoing effort to more inclusive, and we hope other open source projects will do the same.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Salesforce donates $10,000 to ESLint</title>
    <link href="https://eslint.org/blog/2020/08/salesforce-donates-10000-to-eslint/"/>
    <updated>2020-08-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/08/salesforce-donates-10000-to-eslint/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog-covers/sponsorship-salesforce.png&quot; alt=&quot;Salesforce Donates to ESLint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We are happy to share that &lt;a href=&quot;https://salesforce.com/&quot;&gt;Salesforce&lt;/a&gt; has donated $10,000 to the ESLint project as part of their &lt;a href=&quot;https://engineering.salesforce.com/announcing-the-first-foss-contributor-fund-recipient-60a295201497&quot;&gt;FOSS Contributor Fund&lt;/a&gt;. The FOSS Contributor Fund donates $10,000 to qualifying open source projects each quarter. Salesforce employees who have contributed to an open source project nominate and vote on potential project recipients. For this quarter, ESLint was selected as the recipient. (Read about it on the &lt;a href=&quot;https://engineering.salesforce.com/giving-back-through-our-foss-fund-38754167c00d&quot;&gt;Salesforce Blog&lt;/a&gt;, too.)&lt;/p&gt;
&lt;p&gt;Here’s what Médédé Raymond KPATCHAA, who nominated ESLint, had to say:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“ESLint is an extremely useful tool for any JavaScript project. This tool allows us to set up consistent code formatting rules adopted by the whole team from the beginning of the project, greatly facilitates code reviews, and makes it easy to integrate new developers into the team. I know I am not alone in appreciating its flexibility and ease-of-use.” – Médédé Raymond KPATCHAA, Technical Architect, Salesforce&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We are grateful to Médédé for nominating ESLint this quarter and to the Salesforce employees who voted for ESLint. Financial support from companies like Salesforce is why ESLint has been able to keep up with the changing JavaScript ecosystem for the past seven years.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.6.0 released</title>
    <link href="https://eslint.org/blog/2020/07/eslint-v7.6.0-released/"/>
    <updated>2020-07-31T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/07/eslint-v7.6.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;ruletester-requires-meta.fixable-for-fixable-rules&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;RuleTester&lt;/code&gt; requires &lt;code&gt;meta.fixable&lt;/code&gt; for fixable rules&lt;/h3&gt;
&lt;p&gt;Fixable rules are required to have a &lt;code&gt;meta.fixable&lt;/code&gt; property. A bug in the &lt;code&gt;RuleTester&lt;/code&gt; class (which is intended to help plugin authors write and test custom rules) was recently surfaced in which fixable rules that do not export metadata (the &lt;code&gt;meta&lt;/code&gt; property) are not validated for the existence of a &lt;code&gt;meta.fixable&lt;/code&gt; property, while rules that do export &lt;code&gt;meta&lt;/code&gt; are.&lt;/p&gt;
&lt;p&gt;This has been fixed in this release! Unfortunately, this can lead to new errors being reported by the &lt;code&gt;RuleTester&lt;/code&gt; for rules that apply fixes and are missing a &lt;code&gt;meta&lt;/code&gt; property. Please feel free to stop by our &lt;a href=&quot;https://eslint.org/chat/help&quot;&gt;help channel&lt;/a&gt; if you need assistance resolving this issue.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ecb2b7343a0d14fb57d297a16be6c1b176fb3dbf&quot;&gt;&lt;code&gt;ecb2b73&lt;/code&gt;&lt;/a&gt; Update: require &lt;code&gt;meta&lt;/code&gt; for fixable rules in RuleTester (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13349&quot;&gt;#13349&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13489&quot;&gt;#13489&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e71e2980cd2e319afc70d8c859c7ffd59cf4157b&quot;&gt;&lt;code&gt;e71e298&lt;/code&gt;&lt;/a&gt; Update: Change &lt;a href=&quot;https://eslint.org/docs/rules/no-duplicate-case&quot;&gt;no-duplicate-case&lt;/a&gt; to comparing tokens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13485&quot;&gt;#13485&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13494&quot;&gt;#13494&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/318fe103dbf2548eee293ff456ef0b829dbe3db3&quot;&gt;&lt;code&gt;318fe10&lt;/code&gt;&lt;/a&gt; Fix: Do not output &lt;code&gt;undefined&lt;/code&gt; as line and column when it’s unavailable (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13519&quot;&gt;#13519&lt;/a&gt;) (haya14busa)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16b10fe8ba3c78939d5ada4a25caf2f0c9e6a058&quot;&gt;&lt;code&gt;16b10fe&lt;/code&gt;&lt;/a&gt; Fix: Update the chatroom link to go directly to help channel (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13536&quot;&gt;#13536&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6fb4edde3b7a7ae2faf8ac956a7342fbf80865fc&quot;&gt;&lt;code&gt;6fb4edd&lt;/code&gt;&lt;/a&gt; Docs: fix broken links in developer guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13518&quot;&gt;#13518&lt;/a&gt;) (Sam Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c4aea44fd78e1eecea5fe3c37e1921e3b1e98a6&quot;&gt;&lt;code&gt;6c4aea4&lt;/code&gt;&lt;/a&gt; Docs: add ECMAScript 2020 to README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13510&quot;&gt;#13510&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.5.0 released</title>
    <link href="https://eslint.org/blog/2020/07/eslint-v7.5.0-released/"/>
    <updated>2020-07-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/07/eslint-v7.5.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;optional-chaining-support&quot; tabindex=&quot;-1&quot;&gt;Optional Chaining Support&lt;/h3&gt;
&lt;p&gt;Support for &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining&quot;&gt;optional chaining&lt;/a&gt; has landed in ESLint!&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; maybeProp &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; obj&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;first&lt;span class=&quot;token operator&quot;&gt;?.&lt;/span&gt;second&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The default parser and built-in rules will support this syntax when you enable &lt;code&gt;parserOptions.ecmaVersion: 2020&lt;/code&gt; in your configuration:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token property&quot;&gt;&quot;parserOptions&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token property&quot;&gt;&quot;ecmaVersion&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2020&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;deprecating-id-blacklist&quot; tabindex=&quot;-1&quot;&gt;Deprecating &lt;code&gt;id-blacklist&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;id-blacklist&lt;/code&gt; has been deprecated and replaced with &lt;code&gt;id-denylist&lt;/code&gt;. We renamed &lt;code&gt;id-blacklist&lt;/code&gt; to &lt;code&gt;id-denylist&lt;/code&gt; in the previous release (&lt;a href=&quot;https://eslint.org/blog/2020/07/eslint-v7.4.0-released&quot;&gt;v7.4.0&lt;/a&gt;), which unfortunately led to some unintended breakages in the ESLint ecosystem. In this release, we have added back the &lt;code&gt;id-blacklist&lt;/code&gt; rule and have marked it as deprecated. If you are currently using &lt;code&gt;id-blacklist&lt;/code&gt;, we recommend switching to &lt;code&gt;id-denylist&lt;/code&gt; to ensure you receive bug fixes and updates to the rule in future releases.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ea3178776eae0e40c3f5498893e8aab0e23686b&quot;&gt;&lt;code&gt;6ea3178&lt;/code&gt;&lt;/a&gt; Update: optional chaining support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12642&quot;&gt;#12642&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13416&quot;&gt;#13416&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f4d7b9e1a599346b2f21ff9de003b311b51411e6&quot;&gt;&lt;code&gt;f4d7b9e&lt;/code&gt;&lt;/a&gt; Update: deprecate &lt;a href=&quot;https://eslint.org/docs/rules/id-blacklist&quot;&gt;id-blacklist&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13465&quot;&gt;#13465&lt;/a&gt;) (Dimitri Mitropoulos)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c8f9c8210cf4b9da8f07922093d7b219abad9f10&quot;&gt;&lt;code&gt;c8f9c82&lt;/code&gt;&lt;/a&gt; Update: Improve report location &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13462&quot;&gt;#13462&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0af1d2828d27885483737867653ba1659af72005&quot;&gt;&lt;code&gt;0af1d28&lt;/code&gt;&lt;/a&gt; Update: add allowSeparatedGroups option to &lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;sort-imports&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12951&quot;&gt;#12951&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13455&quot;&gt;#13455&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1050ee78a95da9484ff333dc1c74dac64c05da6f&quot;&gt;&lt;code&gt;1050ee7&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/no-unneeded-ternary&quot;&gt;no-unneeded-ternary&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13456&quot;&gt;#13456&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b77b4202bd1d5d1306f6f645e88d7a41a51715db&quot;&gt;&lt;code&gt;b77b420&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13458&quot;&gt;#13458&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a96bc5ec06f3a48bfe458bccd68d4d3b2a280ed9&quot;&gt;&lt;code&gt;a96bc5e&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/arrow-body-style&quot;&gt;arrow-body-style&lt;/a&gt; fixer for &lt;code&gt;in&lt;/code&gt; wrap (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11849&quot;&gt;#11849&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13228&quot;&gt;#13228&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/095194c0fc0eb02aa69fde6b4280696e0e4de214&quot;&gt;&lt;code&gt;095194c&lt;/code&gt;&lt;/a&gt; Fix: add end location to reports in &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13460&quot;&gt;#13460&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10251bbaeba80ac15244f385fc42cf2f2a30e5d2&quot;&gt;&lt;code&gt;10251bb&lt;/code&gt;&lt;/a&gt; Fix: add end location to reports in &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13461&quot;&gt;#13461&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/885a1455691265db88dc0befe9b48a69d69e8b9c&quot;&gt;&lt;code&gt;885a145&lt;/code&gt;&lt;/a&gt; Docs: clarify behavior if &lt;code&gt;meta.fixable&lt;/code&gt; is omitted (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13349&quot;&gt;#13349&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13493&quot;&gt;#13493&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a01b420eaab0de03dab5cc190a9f2a860c21a84&quot;&gt;&lt;code&gt;1a01b42&lt;/code&gt;&lt;/a&gt; Docs: Update technology sponsors in README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13478&quot;&gt;#13478&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f1cc725ba1b8646dcf06a83716d96ad9bb726172&quot;&gt;&lt;code&gt;f1cc725&lt;/code&gt;&lt;/a&gt; Docs: fix linebreaks between versions in changelog (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13488&quot;&gt;#13488&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/61097fe5cc275d414a0c8e19b31c6060cb5568b7&quot;&gt;&lt;code&gt;61097fe&lt;/code&gt;&lt;/a&gt; Docs: Update int rule level to string (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13483&quot;&gt;#13483&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e951457b7aaa1b12b135588d36e3f4db4d7b8463&quot;&gt;&lt;code&gt;e951457&lt;/code&gt;&lt;/a&gt; Docs: fix wording in &lt;a href=&quot;http://configuring.md/&quot;&gt;configuring.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13469&quot;&gt;#13469&lt;/a&gt;) (Piper)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ed9e8e4ff038c0259b0e7fe7ab7f4fd4ec55801&quot;&gt;&lt;code&gt;6ed9e8e&lt;/code&gt;&lt;/a&gt; Upgrade: lodash@4.17.19 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13499&quot;&gt;#13499&lt;/a&gt;) (Yohan Siguret)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/748734fdd497fbf61f3a616ff4a09169135b9396&quot;&gt;&lt;code&gt;748734f&lt;/code&gt;&lt;/a&gt; Upgrade: Updated puppeteer version to v4.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13444&quot;&gt;#13444&lt;/a&gt;) (odidev)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2e68ec1d6cee6299e8a5cdf76c522c11d3008dd&quot;&gt;&lt;code&gt;f2e68ec&lt;/code&gt;&lt;/a&gt; Build: update webpack resolve.mainFields to match website config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13457&quot;&gt;#13457&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/540b1af77278ae649b621aa8d4bf8d6de03c3155&quot;&gt;&lt;code&gt;540b1af&lt;/code&gt;&lt;/a&gt; Chore: enable consistent-meta-messages internal rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13487&quot;&gt;#13487&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e14a645aa495558081490f990ba221e21aa6b27c&quot;&gt;&lt;code&gt;e14a645&lt;/code&gt;&lt;/a&gt; Chore: use espree.latestEcmaVersion in fuzzer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13484&quot;&gt;#13484&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.4.0 released</title>
    <link href="https://eslint.org/blog/2020/07/eslint-v7.4.0-released/"/>
    <updated>2020-07-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/07/eslint-v7.4.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Shortly after the v7.3.0 release, we received &lt;a href=&quot;https://github.com/eslint/eslint/issues/13427&quot;&gt;an issue&lt;/a&gt; that &lt;a href=&quot;https://github.com/airbnb/javascript/issues/2245&quot;&gt;&lt;code&gt;eslint-config-airbnb&lt;/code&gt; was breaking&lt;/a&gt; because it used &lt;code&gt;Infinity&lt;/code&gt; in a rule config. &lt;code&gt;Infinity&lt;/code&gt; should have been forbidden by the &lt;a href=&quot;https://github.com/benmosher/eslint-plugin-import/blob/296262842b52a50c5b107ba91bb2d13c05b2a104/src/rules/no-cycle.js#L17-L21&quot;&gt;rule’s option schema&lt;/a&gt;, but &lt;a href=&quot;https://github.com/ajv-validator/ajv/issues/182&quot;&gt;a bug&lt;/a&gt; in Ajv, the JSON schema validator that ESLint uses, incorrectly allowed &lt;code&gt;Infinity&lt;/code&gt; when an &lt;code&gt;integer&lt;/code&gt; was specified. This was finally caught because the v7.3.0 release included &lt;a href=&quot;https://github.com/eslint/eslint/pull/13034&quot;&gt;a change&lt;/a&gt; that fixed &lt;a href=&quot;https://github.com/eslint/eslint/issues/12592&quot;&gt;an unrelated issue&lt;/a&gt; by serializing rule configs. ESLint expects rule configs to be JSON-serializable for consistency between all supported JSON, YAML, and JS &lt;code&gt;.eslintrc&lt;/code&gt; formats, and it relies on this property in the &lt;code&gt;--cache&lt;/code&gt; and &lt;code&gt;--print-config&lt;/code&gt; command line options.&lt;/p&gt;
&lt;p&gt;Updating &lt;code&gt;eslint-config-airbnb&lt;/code&gt; to use &lt;code&gt;Number.MAX_SAFE_INTEGER&lt;/code&gt; instead of &lt;code&gt;Infinity&lt;/code&gt; is the &lt;a href=&quot;https://github.com/eslint/eslint/issues/13427#issuecomment-647733750&quot;&gt;ideal solution&lt;/a&gt; but would have taken too long. Since this was the only reported issue and isolated to &lt;code&gt;eslint-config-airbnb&lt;/code&gt; rather than end-user configs, we &lt;a href=&quot;https://github.com/eslint/eslint/pull/13435&quot;&gt;implemented an exception&lt;/a&gt; that replaced &lt;code&gt;Infinity&lt;/code&gt; with &lt;code&gt;Number.MAX_SAFE_INTEGER&lt;/code&gt; and released it in v7.3.1, which allowed us to preserve the unrelated bug fix.&lt;/p&gt;
&lt;p&gt;After the v7.3.1 release, we received &lt;a href=&quot;https://github.com/eslint/eslint/issues/13447&quot;&gt;another issue&lt;/a&gt; that &lt;a href=&quot;https://github.com/sindresorhus/eslint-plugin-unicorn/blob/6c02ce4e32c84702bcd06e90aa91696366036294/docs/rules/filename-case.md#ignore&quot;&gt;an &lt;code&gt;eslint-plugin-unicorn&lt;/code&gt; rule&lt;/a&gt; was directing users to use regular expression instances, which are not JSON-serializable. Unlike &lt;code&gt;eslint-config-airbnb&lt;/code&gt;, where the non-serializable value was isolated to a single dependency, end user configs for &lt;code&gt;eslint-plugin-unicorn&lt;/code&gt; include regular expressions, so fixing all of them is not practical.&lt;/p&gt;
&lt;p&gt;We’re therefore &lt;a href=&quot;https://github.com/eslint/eslint/pull/13449&quot;&gt;reverting the original change&lt;/a&gt; for the v7.4.0 release and will be finding another solution. This will unblock regular linting for users whose rule configs include non-JSON-serializable values, though the &lt;code&gt;--cache&lt;/code&gt; and &lt;code&gt;--print-config&lt;/code&gt; command line options may exhibit undefined behavior in those cases. A future major version of ESLint will enforce that rule configs contain only JSON-serializable values, and we anticipate that enhancements to &lt;code&gt;RuleTester&lt;/code&gt; will help rule authors prepare their schemas for that.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff5317e93425f93cfdf808609551ee67b2032543&quot;&gt;&lt;code&gt;ff5317e&lt;/code&gt;&lt;/a&gt; Update: Improve &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; report message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13395&quot;&gt;#13395&lt;/a&gt;) (Philip (flip) Kromer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51e42eca3e87d8259815d736ffe81e604f184057&quot;&gt;&lt;code&gt;51e42ec&lt;/code&gt;&lt;/a&gt; Update: Add option “ignoreGlobals” to &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11716&quot;&gt;#11716&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12782&quot;&gt;#12782&lt;/a&gt;) (David Gasperoni)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0655f66525d167ca1288167b79a77087cfc8fcf6&quot;&gt;&lt;code&gt;0655f66&lt;/code&gt;&lt;/a&gt; Update: improve report location in &lt;a href=&quot;https://eslint.org/docs/rules/arrow-body-style&quot;&gt;arrow-body-style&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13424&quot;&gt;#13424&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d53d69af08cfe55f42e0a0ca725b1014dabccc21&quot;&gt;&lt;code&gt;d53d69a&lt;/code&gt;&lt;/a&gt; Update: prefer-regex-literal detect regex literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12840&quot;&gt;#12840&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12842&quot;&gt;#12842&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/004adae3f959414f56e44e5884f6221e9dcda142&quot;&gt;&lt;code&gt;004adae&lt;/code&gt;&lt;/a&gt; Update: rename id-blacklist to &lt;a href=&quot;https://eslint.org/docs/rules/id-denylist&quot;&gt;id-denylist&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13407&quot;&gt;#13407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13408&quot;&gt;#13408&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ada2c891298382f82dfabf37cacd59a1057b2bb7&quot;&gt;&lt;code&gt;ada2c89&lt;/code&gt;&lt;/a&gt; Fix: support typescript generics in &lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;arrow-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12570&quot;&gt;#12570&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13451&quot;&gt;#13451&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89ee01e083f1e02293bf8d1447f9b0fdb3cb9384&quot;&gt;&lt;code&gt;89ee01e&lt;/code&gt;&lt;/a&gt; Fix: Revert config cloning (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13447&quot;&gt;#13447&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13449&quot;&gt;#13449&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3f51930eea7cddc921a9ee3cb0328c7b649c0f83&quot;&gt;&lt;code&gt;3f51930&lt;/code&gt;&lt;/a&gt; Fix: false positive new with member in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12740&quot;&gt;#12740&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13375&quot;&gt;#13375&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/825a5b98d3d84f6eb72b75f7d8519de763cc8898&quot;&gt;&lt;code&gt;825a5b9&lt;/code&gt;&lt;/a&gt; Fix: Clarify documentation on implicit ignore behavior (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12348&quot;&gt;#12348&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12600&quot;&gt;#12600&lt;/a&gt;) (Scott Hardin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f21bad2680406a2671b877f8dba47f4475d0cc64&quot;&gt;&lt;code&gt;f21bad2&lt;/code&gt;&lt;/a&gt; Docs: fix description for &lt;code&gt;never&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/multiline-ternary&quot;&gt;multiline-ternary&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13368&quot;&gt;#13368&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13452&quot;&gt;#13452&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a463dbf7cc5a77d442879c9117204d4d38db972&quot;&gt;&lt;code&gt;0a463db&lt;/code&gt;&lt;/a&gt; Docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-multiple-empty-lines&quot;&gt;no-multiple-empty-lines&lt;/a&gt; examples (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13432&quot;&gt;#13432&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13433&quot;&gt;#13433&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.3.1 released</title>
    <link href="https://eslint.org/blog/2020/06/eslint-v7.3.1-released/"/>
    <updated>2020-06-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/06/eslint-v7.3.1-released/</id>
    <content type="html">&lt;p&gt;The v7.3.0 release included a fix for an unrelated issue that caused a configuration issue in &lt;code&gt;eslint-config-airbnb&lt;/code&gt; that had previously gone unnoticed to start failing. ESLint expects configurations to be JSON-serializable, so configurations that use &lt;code&gt;Infinity&lt;/code&gt; or other non-JSON-serializable values may cause undefined behavior in some parts of ESLint including caching and the &lt;code&gt;--print-config&lt;/code&gt; command line argument. In this case, the use of &lt;code&gt;Infinity&lt;/code&gt; was not caught until now due to a gap in the JSON schema validator that ESLint uses for which a fix has been implemented and is awaiting release.&lt;/p&gt;
&lt;p&gt;In order to give users time to upgrade to an updated version of &lt;code&gt;eslint-config-airbnb&lt;/code&gt; when it becomes available, this v7.3.1 release includes a temporary workaround for &lt;code&gt;Infinity&lt;/code&gt; that will allow linting to continue despite the undefined behavior elsewhere.&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de77c11e7515f2097ff355ddc0d7b6db9c83c892&quot;&gt;&lt;code&gt;de77c11&lt;/code&gt;&lt;/a&gt; Fix: Replace Infinity with Number.MAX_SAFE_INTEGER (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13427&quot;&gt;#13427&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13435&quot;&gt;#13435&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.3.0 released</title>
    <link href="https://eslint.org/blog/2020/06/eslint-v7.3.0-released/"/>
    <updated>2020-06-19T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/06/eslint-v7.3.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The new &lt;a href=&quot;https://eslint.org/docs/rules/no-promise-executor-return&quot;&gt;no-promise-executor-return&lt;/a&gt; rule prevents returning unreadable values from inside &lt;code&gt;new Promise(...)&lt;/code&gt; executors.&lt;/li&gt;
&lt;li&gt;The new &lt;a href=&quot;https://eslint.org/docs/rules/no-unreachable-loop&quot;&gt;no-unreachable-loop&lt;/a&gt; rule catches loops that are guaranteed to execute only once.&lt;/li&gt;
&lt;li&gt;Several rules have been updated to report more accurate source code locations.&lt;/li&gt;
&lt;li&gt;Several rule option schemas have been improved to catch configuration typos.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e1414ee16b8caf582920f8fdf3b6ee1eb0b7cd5&quot;&gt;&lt;code&gt;9e1414e&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-promise-executor-return&quot;&gt;no-promise-executor-return&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12640&quot;&gt;#12640&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12648&quot;&gt;#12648&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b550330d739c73a7a8f887064e7c911d05a95f9a&quot;&gt;&lt;code&gt;b550330&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-unreachable-loop&quot;&gt;no-unreachable-loop&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12381&quot;&gt;#12381&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12660&quot;&gt;#12660&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/638a6d6be18b4a37cfdc7223e1f5acd3718694be&quot;&gt;&lt;code&gt;638a6d6&lt;/code&gt;&lt;/a&gt; Update: add missing &lt;code&gt;additionalProperties: false&lt;/code&gt; to some rules’ schema (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13198&quot;&gt;#13198&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/949a5cd741c2e930cfb43d80a9b6b084f9d677c3&quot;&gt;&lt;code&gt;949a5cd&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/operator-linebreak&quot;&gt;operator-linebreak&lt;/a&gt; overrides schema (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13199&quot;&gt;#13199&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/09cc0a2bb5bcf3bcb0766a3c989871f268518437&quot;&gt;&lt;code&gt;09cc0a2&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/max-lines&quot;&gt;max-lines&lt;/a&gt; reporting loc improvement (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13318&quot;&gt;#13318&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee2fc2e90d0f9dfcdba852b0609156bee5280b92&quot;&gt;&lt;code&gt;ee2fc2e&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/object-property-newline&quot;&gt;object-property-newline&lt;/a&gt; end location (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13399&quot;&gt;#13399&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d98152a3d8c72e4f5ac4c6fa10a615b12090c8f7&quot;&gt;&lt;code&gt;d98152a&lt;/code&gt;&lt;/a&gt; Update: added empty error array check for false negative (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13200&quot;&gt;#13200&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7686d7feaccc7b8fee927eda6602d641d8de1e5c&quot;&gt;&lt;code&gt;7686d7f&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/semi-spacing&quot;&gt;semi-spacing&lt;/a&gt; should check do-while statements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13358&quot;&gt;#13358&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cbd0d00a1ec2824d7e025bbbc084855ed0bf08bb&quot;&gt;&lt;code&gt;cbd0d00&lt;/code&gt;&lt;/a&gt; Update: disallow multiple options in &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; schema (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13165&quot;&gt;#13165&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13166&quot;&gt;#13166&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13999d292080f814fa4fb266e011d61c184197c4&quot;&gt;&lt;code&gt;13999d2&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;curly&lt;/a&gt; should check consequent &lt;code&gt;if&lt;/code&gt; statements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12947&quot;&gt;#12947&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6cfbd03b3f22edb4d1c9c61c64eea7c129da71aa&quot;&gt;&lt;code&gt;6cfbd03&lt;/code&gt;&lt;/a&gt; Update: Drop @typescript-eslint/eslint-recommended from &lt;code&gt;eslint --init&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13340&quot;&gt;#13340&lt;/a&gt;) (Minh Nguyen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2a210499288ed14ec9a6fd72decabfb77504c197&quot;&gt;&lt;code&gt;2a21049&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;key-spacing&lt;/a&gt; loc changes for extra space (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13362&quot;&gt;#13362&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7fb45cf13e9908d489bd6d5fba3b7243c01508b9&quot;&gt;&lt;code&gt;7fb45cf&lt;/code&gt;&lt;/a&gt; Fix: clone config before validating (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12592&quot;&gt;#12592&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13034&quot;&gt;#13034&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9d0186e55bee769ea6aa08dc5a62682f58316412&quot;&gt;&lt;code&gt;9d0186e&lt;/code&gt;&lt;/a&gt; Docs: Fix changelog versions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13410&quot;&gt;#13410&lt;/a&gt;) (Tony Brix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ee3c42ceeee56b650bcc4206ed783b795f65643&quot;&gt;&lt;code&gt;1ee3c42&lt;/code&gt;&lt;/a&gt; Docs: On maxEOF with &lt;a href=&quot;https://eslint.org/docs/rules/eol-last&quot;&gt;eol-last&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12742&quot;&gt;#12742&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13374&quot;&gt;#13374&lt;/a&gt;) (Arthur Dias)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f1f5ed2a20b8fb575d4360316861cf4c2b9b7bc&quot;&gt;&lt;code&gt;0f1f5ed&lt;/code&gt;&lt;/a&gt; Docs: Add security policy link to README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13403&quot;&gt;#13403&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c42e54893b79b470ca7745bd2a626ffd069e017b&quot;&gt;&lt;code&gt;c42e548&lt;/code&gt;&lt;/a&gt; Chore: enable exceptRange option in the &lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;yoda&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12857&quot;&gt;#12857&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/796f269e448fdcbf8a5a62edf1990bd857efd1af&quot;&gt;&lt;code&gt;796f269&lt;/code&gt;&lt;/a&gt; Chore: update eslint-config-eslint’s required node version (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13379&quot;&gt;#13379&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ce7988f411da64248a64a9d9d2b7884d5ba39e0&quot;&gt;&lt;code&gt;7ce7988&lt;/code&gt;&lt;/a&gt; Chore: Replace the inquirer dependency with enquirer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13254&quot;&gt;#13254&lt;/a&gt;) (Selwyn)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.2.0 released</title>
    <link href="https://eslint.org/blog/2020/06/eslint-v7.2.0-released/"/>
    <updated>2020-06-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/06/eslint-v7.2.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;ECMAScript 2020 syntax support has landed in ESLint! This release adds support for the following language features in the default parser and core rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator&quot;&gt;Nullish coalescing operator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;export * as ns from &amp;quot;source&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import.meta&quot;&gt;&lt;code&gt;import.meta&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note: We are aware that optional chaining support is still missing. If you’re interested in following the process of implementing support for this syntax, please subscribe to &lt;a href=&quot;https://github.com/estree/estree/pull/204&quot;&gt;this ESTree issue&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b735a485e77bcc791e4c4c6b8716801d94e98b2c&quot;&gt;&lt;code&gt;b735a48&lt;/code&gt;&lt;/a&gt; Update: add enforceForFunctionPrototypeMethods option to &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12895&quot;&gt;#12895&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27ef73ffb7428d5eff792d443186a2313e417bda&quot;&gt;&lt;code&gt;27ef73f&lt;/code&gt;&lt;/a&gt; Update: reporter locr of &lt;a href=&quot;https://eslint.org/docs/rules/func-call-spacing&quot;&gt;func-call-spacing&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13311&quot;&gt;#13311&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/353bfe9760ec640f470859855d4018df084a4e88&quot;&gt;&lt;code&gt;353bfe9&lt;/code&gt;&lt;/a&gt; Update: handle parentheses in &lt;a href=&quot;https://eslint.org/docs/rules/multiline-ternary&quot;&gt;multiline-ternary&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13195&quot;&gt;#13195&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13367&quot;&gt;#13367&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7fd343991cde99d8a219e3b25616db5792fe9a9&quot;&gt;&lt;code&gt;a7fd343&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; unexpected space loc improve (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13377&quot;&gt;#13377&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd949aedb81fa772e10568920156daf075d25ea2&quot;&gt;&lt;code&gt;dd949ae&lt;/code&gt;&lt;/a&gt; Update: support &lt;code&gt;??&lt;/code&gt; operator, import.meta, and &lt;code&gt;export * as ns&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13196&quot;&gt;#13196&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d5fce9fa07e37ce61010a1fbb65964f1f7aefd82&quot;&gt;&lt;code&gt;d5fce9f&lt;/code&gt;&lt;/a&gt; Update: enable es2020 environment in --init (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13357&quot;&gt;#13357&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b76aef778befb32afe7ad249934b132dc49713d2&quot;&gt;&lt;code&gt;b76aef7&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/template-tag-spacing&quot;&gt;template-tag-spacing&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13203&quot;&gt;#13203&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb50b69c08d4393e32d5c42c537d769c51dd34d8&quot;&gt;&lt;code&gt;cb50b69&lt;/code&gt;&lt;/a&gt; Update: Improve location for &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-spaces-and-tabs&quot;&gt;no-mixed-spaces-and-tabs&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13365&quot;&gt;#13365&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e49732eb41bff6347ca7718c3c5ca1d13f1cd2d3&quot;&gt;&lt;code&gt;e49732e&lt;/code&gt;&lt;/a&gt; Fix: Ignore import expressions in &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-expressions&quot;&gt;no-unused-expressions&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13387&quot;&gt;#13387&lt;/a&gt;) (Veniamin Krol)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/426088c966dc79dc338b33100f3adf827b147d69&quot;&gt;&lt;code&gt;426088c&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; updated location to last reference (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13181&quot;&gt;#13181&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13354&quot;&gt;#13354&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21b15832e326f96d349c063cd7e85e72c3abb670&quot;&gt;&lt;code&gt;21b1583&lt;/code&gt;&lt;/a&gt; Docs: fixed broken hash link for &lt;a href=&quot;http://working-with-rules.md/&quot;&gt;working-with-rules.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13386&quot;&gt;#13386&lt;/a&gt;) (Yosuke Ota)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/220349f5404060effe02fb5ec176a92e1383c3b5&quot;&gt;&lt;code&gt;220349f&lt;/code&gt;&lt;/a&gt; Chore: Remove duplicate health files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13380&quot;&gt;#13380&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/578efad331b797e28c0f5f1547ce4769d2ea23ee&quot;&gt;&lt;code&gt;578efad&lt;/code&gt;&lt;/a&gt; Chore: update &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; caughtErrors in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13351&quot;&gt;#13351&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f858f2a8f83232484491bd90b0bc5001b5056ad0&quot;&gt;&lt;code&gt;f858f2a&lt;/code&gt;&lt;/a&gt; Chore: Add Tidelift to funding.yml (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13371&quot;&gt;#13371&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c29bd9f75582e5b1a403a8ffd0aafd1ffc8c58e1&quot;&gt;&lt;code&gt;c29bd9f&lt;/code&gt;&lt;/a&gt; Chore: Add breaking/core change link to issue templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13344&quot;&gt;#13344&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.1.0 released</title>
    <link href="https://eslint.org/blog/2020/05/eslint-v7.1.0-released/"/>
    <updated>2020-05-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/05/eslint-v7.1.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c636d5708c461a8ff1ea55e5df56d4f76f9c4044&quot;&gt;&lt;code&gt;c636d57&lt;/code&gt;&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/no-loss-of-precision&quot;&gt;no-loss-of-precision&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11279&quot;&gt;#11279&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12747&quot;&gt;#12747&lt;/a&gt;) (jmoore914)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df01af184d93b3d64b37cee786cad59bd0d7aacb&quot;&gt;&lt;code&gt;df01af1&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/padded-blocks&quot;&gt;padded-blocks&lt;/a&gt; loc position changes (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13328&quot;&gt;#13328&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25462b23eac4ed1ded97eeae6187b5d8baa58e78&quot;&gt;&lt;code&gt;25462b2&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/block-spacing&quot;&gt;block-spacing&lt;/a&gt; changed loc for extra (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13314&quot;&gt;#13314&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a19514193a42f4f00732559ff828b33a6ec9d7c5&quot;&gt;&lt;code&gt;a195141&lt;/code&gt;&lt;/a&gt; Update: reporting location for &lt;a href=&quot;https://eslint.org/docs/rules/semi-spacing&quot;&gt;semi-spacing&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13285&quot;&gt;#13285&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0a6b8134e3b399beeb69432a02232a1037f7c46&quot;&gt;&lt;code&gt;b0a6b81&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/rest-spread-spacing&quot;&gt;rest-spread-spacing&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13313&quot;&gt;#13313&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89e10811c4df666216aae58bff5f855cd9df738b&quot;&gt;&lt;code&gt;89e1081&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/linebreak-style&quot;&gt;linebreak-style&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13317&quot;&gt;#13317&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/742941d7fdc3fd79ff8c5d2588413e0d3a5a525b&quot;&gt;&lt;code&gt;742941d&lt;/code&gt;&lt;/a&gt; Update: added typescript-eslint/recommended configs for init (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13235&quot;&gt;#13235&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a93083af89c6f9714dcdd4a7f27c8655a0b0dba6&quot;&gt;&lt;code&gt;a93083a&lt;/code&gt;&lt;/a&gt; Fix: astUtils.getNextLocation returns invalid location after CRLF (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13275&quot;&gt;#13275&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bd3f092efa579944f75bfbc277b35f85e6d966ed&quot;&gt;&lt;code&gt;bd3f092&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/max-lines-per-function&quot;&gt;max-lines-per-function&lt;/a&gt; flagging arrow IIFEs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13332&quot;&gt;#13332&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13336&quot;&gt;#13336&lt;/a&gt;) (cherryblossom000)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de0aab95005f172db72196fc3fd18e91ee9a5880&quot;&gt;&lt;code&gt;de0aab9&lt;/code&gt;&lt;/a&gt; Fix: report end loc in &lt;a href=&quot;https://eslint.org/docs/rules/one-var-declaration-per-line&quot;&gt;one-var-declaration-per-line&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13326&quot;&gt;#13326&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1710296082083602a904b080908657bb431fb56c&quot;&gt;&lt;code&gt;1710296&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-new-symbol&quot;&gt;no-new-symbol&lt;/a&gt; false positive with Symbol as an argument (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13337&quot;&gt;#13337&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc014514c29626e556acb0a528e3478b3725e284&quot;&gt;&lt;code&gt;cc01451&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;arrow-parens&lt;/a&gt; no reporting for comments inside (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12995&quot;&gt;#12995&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13312&quot;&gt;#13312&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3e4c41ab625a5af8d4614d1c6d32c656f104f6b&quot;&gt;&lt;code&gt;e3e4c41&lt;/code&gt;&lt;/a&gt; Fix: fix false positives of &lt;a href=&quot;https://eslint.org/docs/rules/no-new-func&quot;&gt;no-new-func&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13333&quot;&gt;#13333&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68c8ee3ab70187972aef4c4e866bcf29da70a207&quot;&gt;&lt;code&gt;68c8ee3&lt;/code&gt;&lt;/a&gt; Fix: Stop path analyzer on unknown nodes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13305&quot;&gt;#13305&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c778fb6e31b7943bb27a47a6e15dcbfd8336f39&quot;&gt;&lt;code&gt;2c778fb&lt;/code&gt;&lt;/a&gt; Fix: remove custom plugins from replacedBy metadata (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13274&quot;&gt;#13274&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/611c676dfd671013d81810724f184e2a9c5ad5d7&quot;&gt;&lt;code&gt;611c676&lt;/code&gt;&lt;/a&gt; Docs: Update new rules policies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13343&quot;&gt;#13343&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/08913798b4ec420b261b8fbc470504f9f248c840&quot;&gt;&lt;code&gt;0891379&lt;/code&gt;&lt;/a&gt; Docs: Document the “correct” way to build an array with values (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13246&quot;&gt;#13246&lt;/a&gt;) (Ed S)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f1484690665b4f4b9cd9680ca8bb7b5cf56e48a&quot;&gt;&lt;code&gt;7f14846&lt;/code&gt;&lt;/a&gt; Docs: fix broken link in Node.js API docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13307&quot;&gt;#13307&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f175338cba29960aab67a540f516051f9d428c8&quot;&gt;&lt;code&gt;1f17533&lt;/code&gt;&lt;/a&gt; Docs: Gitter -&amp;gt; Discord URL (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/13039&quot;&gt;#13039&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13308&quot;&gt;#13308&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82a448a7deff24e9207f60dfe77622c00102bd99&quot;&gt;&lt;code&gt;82a448a&lt;/code&gt;&lt;/a&gt; Docs: improve documentation of &lt;a href=&quot;https://eslint.org/docs/rules/no-return-await&quot;&gt;no-return-await&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13215&quot;&gt;#13215&lt;/a&gt;) (Linus Unnebäck)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a5fbb3d634be688615950c0a5fa8aead6ff08b5&quot;&gt;&lt;code&gt;3a5fbb3&lt;/code&gt;&lt;/a&gt; Chore: correct fileoverview doc in &lt;a href=&quot;https://eslint.org/docs/rules/accessor-pairs&quot;&gt;accessor-pairs&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13335&quot;&gt;#13335&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88127d74d56b88cc5a0758856995716050021131&quot;&gt;&lt;code&gt;88127d7&lt;/code&gt;&lt;/a&gt; Chore: remove checkbox from PR template prerequesites (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13330&quot;&gt;#13330&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/72a4e1044592057c4a3f39dbb1dbe61b00ea8af6&quot;&gt;&lt;code&gt;72a4e10&lt;/code&gt;&lt;/a&gt; Chore: Mark SourceCode getComments() method as deprecated (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13293&quot;&gt;#13293&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13296&quot;&gt;#13296&lt;/a&gt;) (SuperOleg39)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f44a6b4fd92602af8e2c75d5852f796ec064aa8e&quot;&gt;&lt;code&gt;f44a6b4&lt;/code&gt;&lt;/a&gt; Chore: fix invalid syntax in &lt;a href=&quot;https://eslint.org/docs/rules/require-await&quot;&gt;require-await&lt;/a&gt; tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13277&quot;&gt;#13277&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Changes to our rules policies</title>
    <link href="https://eslint.org/blog/2020/05/changes-to-rules-policies/"/>
    <updated>2020-05-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/05/changes-to-rules-policies/</id>
    <content type="html">&lt;p&gt;When ESLint was first created, the idea was to have a small set of 20-30 core rules that could get everyone started, and then to let the community build out its own rules to fill in any remaining gaps. We did, however, continue implementing core rules as it seemed helpful to the point where today there are 280 core rules. At any given time, more than half of open issues and pull requests are related to rules that take up a significant portion of the team’s time.&lt;/p&gt;
&lt;p&gt;ESLint now benefits from a thriving ecosystem of rule-focused plugins like &lt;code&gt;eslint-plugin-node&lt;/code&gt;, &lt;code&gt;eslint-plugin-import&lt;/code&gt;, &lt;code&gt;eslint-plugin-react&lt;/code&gt;, and many others. Tools like &lt;a href=&quot;https://astexplorer.net/&quot;&gt;astexplorer.net&lt;/a&gt; and numerous tutorials have made it easier than ever for developers to write their own rules. The core team no longer needs to build up a critical mass of basic rules, so we can prioritize our time on long-awaited core features like parallel linting that will benefit the whole community. We’re making some changes to how we prioritize changes to built-in rules, but as always, if a rule isn’t quite right for your situation, you’re encouraged to modify it as a custom rule for your own project and share it with the rest of the community.&lt;/p&gt;
&lt;h2 id=&quot;what-are-the-changes%3F&quot; tabindex=&quot;-1&quot;&gt;What are the changes?&lt;/h2&gt;
&lt;p&gt;Going forward, we’re making the following changes to how we deal with rule issues and pull requests:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New rules are limited&lt;/strong&gt; - we will only accept new rules when they relate to new ECMAScript features that reached stage 4 in the preceding 12 months. The community relies on ESLint to help teach them the correct way to use new language features, and we want to continue doing that. We won’t be accepting new rules that are suggestions or preferences unrelated to new ECMAScript features.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No new rules that only disallow syntax&lt;/strong&gt; - we already have &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;&lt;code&gt;no-restricted-syntax&lt;/code&gt;&lt;/a&gt;, which should work for most cases. Otherwise, people can create their own rules. We do have some legacy rules that just disallow syntax (like &lt;a href=&quot;https://eslint.org/docs/rules/no-undefined&quot;&gt;&lt;code&gt;no-undefined&lt;/code&gt;&lt;/a&gt;) that we will keep, but we won’t be adding any more.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stylistic rules are frozen&lt;/strong&gt; - we won’t be adding any more options to stylistic rules. We’ve learned that there’s no way to satisfy everyone’s personal preferences, and most of the rules already have a lot of difficult-to-understand options. Stylistic rules are those related to spacing, conventions, and generally anything that does not highlight an error or a better way to do something. &lt;em&gt;Update 2021-01-29: We clarified in &lt;a href=&quot;https://github.com/eslint/eslint#stylistic-rule-updates&quot;&gt;the README&lt;/a&gt; that we will still support newly-added ECMAScript features.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New rule options must be implemented by community members&lt;/strong&gt; - People can still propose new options for existing core non-stylistic rules, and we will still evaluate them as usual. However, these approved options will need to be implemented by the community and won’t be part of core team’s development roadmap.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-about-bugs%3F&quot; tabindex=&quot;-1&quot;&gt;What about bugs?&lt;/h2&gt;
&lt;p&gt;We will still be evaluating all core rules, including stylistic rules, for bugs. If a bug can be verified, we will still fix it as part of our normal maintenance routine.&lt;/p&gt;
&lt;h2 id=&quot;thanks-for-your-understanding&quot; tabindex=&quot;-1&quot;&gt;Thanks for your understanding&lt;/h2&gt;
&lt;p&gt;We know this is a change to how ESLint is operating, and we appreciate your understanding. ESLint is maintained by one part-time developer and a team of volunteers, and so our bandwidth is limited. We’re making these changes to make better use of the time we have available to maintain the project. If you’d like to help us, please consider contributing to the project or &lt;a href=&quot;https://github.com/sponsors/eslint&quot;&gt;making a donation&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.0.0 released</title>
    <link href="https://eslint.org/blog/2020/05/eslint-v7.0.0-released/"/>
    <updated>2020-05-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/05/eslint-v7.0.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;There are several breaking changes in 7.0.0. We’ve created a &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-7.0.0&quot;&gt;migration guide&lt;/a&gt; to explain the breaking changes and describe how to upgrade.&lt;/p&gt;
&lt;h3 id=&quot;dropping-support-for-node.js-v8&quot; tabindex=&quot;-1&quot;&gt;Dropping support for Node.js v8&lt;/h3&gt;
&lt;p&gt;Node.js 8 reached EOL in December 2019, and we are officially dropping support for it in this release.&lt;/p&gt;
&lt;h3 id=&quot;core-rule-changes&quot; tabindex=&quot;-1&quot;&gt;Core rule changes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The ten Node.js/CommonJS rules in core have been deprecated and moved to the &lt;a href=&quot;https://github.com/mysticatea/eslint-plugin-node&quot;&gt;eslint-plugin-node&lt;/a&gt; plugin.&lt;/li&gt;
&lt;li&gt;Several rules have been updated to recognize bigint literals and warn on more cases by default.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;eslint:recommended&lt;/code&gt; has been updated with a few new rules: &lt;code&gt;no-dupe-else-if&lt;/code&gt;, &lt;code&gt;no-import-assign&lt;/code&gt;, and &lt;code&gt;no-setter-return&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;improved-developer-experience&quot; tabindex=&quot;-1&quot;&gt;Improved developer experience&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The default ignore patterns have been updated. ESLint will no longer ignore &lt;code&gt;.eslintrc.js&lt;/code&gt; and &lt;code&gt;bower_components/*&lt;/code&gt; by default. Additionally, it will now ignore nested &lt;code&gt;node_modules&lt;/code&gt; directories by default.&lt;/li&gt;
&lt;li&gt;ESLint will now lint files with extensions other than &lt;code&gt;.js&lt;/code&gt; if they are explicitly defined in &lt;code&gt;overrides[].files&lt;/code&gt; - no need to use the &lt;code&gt;--ext&lt;/code&gt; flag!&lt;/li&gt;
&lt;li&gt;ESLint now supports descriptions in directive comments, so things like disable comments can now be clearly documented!&lt;/li&gt;
&lt;li&gt;Additional validation has been added to the &lt;code&gt;RuleTester&lt;/code&gt; class to improve testing custom rules in plugins.&lt;/li&gt;
&lt;li&gt;ESLint will now resolve plugins relative to the entry configuration file. This means that shared configuration files that are located outside the project can now be colocated with the plugins they require.&lt;/li&gt;
&lt;li&gt;Starting in ESLint v7, configuration files and ignore files passed to ESLint using the --config path/to/a-config and --ignore-path path/to/a-ignore CLI flags, respectively, will resolve from the current working directory rather than the file location. This allows for users to utilize shared plugins without having to install them directly in their project.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;new-eslint-class&quot; tabindex=&quot;-1&quot;&gt;New &lt;code&gt;ESLint&lt;/code&gt; class&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;CLIEngine&lt;/code&gt; class provides a synchronous API that is blocking the implementation of features such as parallel linting, supporting ES modules in shareable configs/parsers/plugins/formatters, and adding the ability to visually display the progress of linting runs. The new &lt;code&gt;ESLint&lt;/code&gt; class provides an asynchronous API that ESLint core will now using going forward. &lt;code&gt;CLIEngine&lt;/code&gt; will remain in core for the foreseeable future but may be removed in a future major version.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4ef61580736353f700ab9e4e29f005b5ac552c78&quot;&gt;&lt;code&gt;4ef6158&lt;/code&gt;&lt;/a&gt; Breaking: espree@7.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13270&quot;&gt;#13270&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78c8cda5a5d82f5f8548c4528a6438d29756bb71&quot;&gt;&lt;code&gt;78c8cda&lt;/code&gt;&lt;/a&gt; Breaking: RuleTester Improvements (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/25&quot;&gt;eslint/rfcs#25&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12955&quot;&gt;#12955&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/185982d5615d325ae8b45c2360d5847df4098bda&quot;&gt;&lt;code&gt;185982d&lt;/code&gt;&lt;/a&gt; Breaking: improve plugin resolving (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/47&quot;&gt;eslint/rfcs#47&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12922&quot;&gt;#12922&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/48b122f450b14dd27afef4c8115c69fca4f02be1&quot;&gt;&lt;code&gt;48b122f&lt;/code&gt;&lt;/a&gt; Breaking: change relative paths with --config (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/37&quot;&gt;eslint/rfcs#37&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12887&quot;&gt;#12887&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4af06fc49029dac5c9acfd53f01fd9527bfbb4aa&quot;&gt;&lt;code&gt;4af06fc&lt;/code&gt;&lt;/a&gt; Breaking: Test with an unknown error property should fail in RuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12096&quot;&gt;#12096&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afa9aac6de9444e935a55b46311e5b5a58f86063&quot;&gt;&lt;code&gt;afa9aac&lt;/code&gt;&lt;/a&gt; Breaking: class default &lt;code&gt;true&lt;/code&gt; &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;computed-property-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12812&quot;&gt;#12812&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12915&quot;&gt;#12915&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d52151bcd5d5524f240588436a8808162be187f&quot;&gt;&lt;code&gt;7d52151&lt;/code&gt;&lt;/a&gt; Breaking: classes default &lt;code&gt;true&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/accessor-pairs&quot;&gt;accessor-pairs&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12811&quot;&gt;#12811&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12919&quot;&gt;#12919&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78182e45e0178d9eac2591944ef4daee21d2cb44&quot;&gt;&lt;code&gt;78182e4&lt;/code&gt;&lt;/a&gt; Breaking: Add new rules to eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12911&quot;&gt;#12911&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12920&quot;&gt;#12920&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6423e11c0bedd3b4e661ab554316bdeb1fc1ee3c&quot;&gt;&lt;code&gt;6423e11&lt;/code&gt;&lt;/a&gt; Breaking: check unnamed default export in &lt;a href=&quot;https://eslint.org/docs/rules/func-names&quot;&gt;func-names&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12194&quot;&gt;#12194&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12195&quot;&gt;#12195&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4293229709dde105692347241513766e953664dd&quot;&gt;&lt;code&gt;4293229&lt;/code&gt;&lt;/a&gt; Breaking: &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;use-isnan&lt;/a&gt; enforceForSwitchCase default &lt;code&gt;true&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12810&quot;&gt;#12810&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12913&quot;&gt;#12913&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf38d0d939b62f3670cdd59f0143fd896fccd771&quot;&gt;&lt;code&gt;cf38d0d&lt;/code&gt;&lt;/a&gt; Breaking: change default ignore pattern (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/51&quot;&gt;eslint/rfcs#51&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12888&quot;&gt;#12888&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfe1dc4e614640cb69032afbb5851c1493f537e3&quot;&gt;&lt;code&gt;bfe1dc4&lt;/code&gt;&lt;/a&gt; Breaking: &lt;a href=&quot;https://eslint.org/docs/rules/no-dupe-class-members&quot;&gt;no-dupe-class-members&lt;/a&gt; checks some computed keys (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12808&quot;&gt;#12808&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12837&quot;&gt;#12837&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2217c04d6c82b160a21b00fca39c8acec543403&quot;&gt;&lt;code&gt;c2217c0&lt;/code&gt;&lt;/a&gt; Breaking: make &lt;a href=&quot;https://eslint.org/docs/rules/radix&quot;&gt;&lt;code&gt;radix&lt;/code&gt;&lt;/a&gt; rule stricter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12608&quot;&gt;#12608&lt;/a&gt;) (fisker Cheung)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1aa021d77fdd2c68d7b7d2f4603252110c414b32&quot;&gt;&lt;code&gt;1aa021d&lt;/code&gt;&lt;/a&gt; Breaking: lint &lt;code&gt;overrides&lt;/code&gt; files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10828&quot;&gt;#10828&lt;/a&gt;, refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/20&quot;&gt;eslint/rfcs#20&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12677&quot;&gt;#12677&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b50179def3fedbd95fdeab25e32c2511867eb760&quot;&gt;&lt;code&gt;b50179d&lt;/code&gt;&lt;/a&gt; Breaking: Check assignment targets in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12490&quot;&gt;#12490&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d86a5bbb1987d858d4963f647b0af5c1fd924b4f&quot;&gt;&lt;code&gt;d86a5bb&lt;/code&gt;&lt;/a&gt; Breaking: Check flatMap in &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12235&quot;&gt;#12235&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12765&quot;&gt;#12765&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf46df70158a4ed4c09d5c9d655c07dc6df3ff5e&quot;&gt;&lt;code&gt;cf46df7&lt;/code&gt;&lt;/a&gt; Breaking: description in directive comments (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/33&quot;&gt;eslint/rfcs#33&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12699&quot;&gt;#12699&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7350589a5bdfc9d75d1ff19364f476eec44c3911&quot;&gt;&lt;code&gt;7350589&lt;/code&gt;&lt;/a&gt; Breaking: some rules recognize bigint literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11803&quot;&gt;#11803&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12701&quot;&gt;#12701&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1118fceb49af3436b8dcd0c6089f913cedf9a329&quot;&gt;&lt;code&gt;1118fce&lt;/code&gt;&lt;/a&gt; Breaking: runtime-deprecation on ‘~/.eslintrc’ (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/32&quot;&gt;eslint/rfcs#32&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12678&quot;&gt;#12678&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c28fbbb563a44282bef0c9fcc9be29d611cc83b&quot;&gt;&lt;code&gt;2c28fbb&lt;/code&gt;&lt;/a&gt; Breaking: drop Node.js 8 support (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/44&quot;&gt;eslint/rfcs#44&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12700&quot;&gt;#12700&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9774ec11b0ebe63fb16a97b97890efb84699548&quot;&gt;&lt;code&gt;f9774ec&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/default-case-last&quot;&gt;default-case-last&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12665&quot;&gt;#12665&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12668&quot;&gt;#12668&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1d999c6b4e51c317ad409110be7be214ff9f7c6&quot;&gt;&lt;code&gt;a1d999c&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-backreference&quot;&gt;no-useless-backreference&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12673&quot;&gt;#12673&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12690&quot;&gt;#12690&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/985dac35e3c367f0f99d1f0e766e06a1d9818dd4&quot;&gt;&lt;code&gt;985dac3&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-exports&quot;&gt;no-restricted-exports&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10428&quot;&gt;#10428&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12546&quot;&gt;#12546&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b1d65a45aa5dfe08cd596c420490e81b546317e&quot;&gt;&lt;code&gt;0b1d65a&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13109&quot;&gt;#13109&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3aac532f6a24c633f85dedf0e552eabd22d0956&quot;&gt;&lt;code&gt;d3aac53&lt;/code&gt;&lt;/a&gt; Update: report backtick loc in &lt;a href=&quot;https://eslint.org/docs/rules/no-unexpected-multiline&quot;&gt;no-unexpected-multiline&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13142&quot;&gt;#13142&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bcafd0f8508e19ab8087a35fac7b97fc4295df3e&quot;&gt;&lt;code&gt;bcafd0f&lt;/code&gt;&lt;/a&gt; Update: Add ESLint API (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/40&quot;&gt;eslint/rfcs#40&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12939&quot;&gt;#12939&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c1bdebcf728062fd41583886830c89b65485df9&quot;&gt;&lt;code&gt;5c1bdeb&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/getter-return&quot;&gt;getter-return&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13164&quot;&gt;#13164&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e7c1d4b2ac56149a517d4b0000230348a641f1d3&quot;&gt;&lt;code&gt;e7c1d4b&lt;/code&gt;&lt;/a&gt; Update: deprecate Node.js &amp;amp; CommonJS rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12898&quot;&gt;#12898&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af4472fed794b86e63730702e4b27294a4118d09&quot;&gt;&lt;code&gt;af4472f&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/new-cap&quot;&gt;new-cap&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13136&quot;&gt;#13136&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a784dac8bc26f31edbca869b16d6ad91bd4e5cc4&quot;&gt;&lt;code&gt;a784dac&lt;/code&gt;&lt;/a&gt; Update: Improve report location &lt;a href=&quot;https://eslint.org/docs/rules/newline-per-chained-call&quot;&gt;newline-per-chained-call&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13116&quot;&gt;#13116&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e07574a91861fdcab6888b4c6829868030c3a39&quot;&gt;&lt;code&gt;5e07574&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/space-before-function-paren&quot;&gt;space-before-function-paren&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13128&quot;&gt;#13128&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17e2fe425168e675fe7607182615e50527eedf53&quot;&gt;&lt;code&gt;17e2fe4&lt;/code&gt;&lt;/a&gt; Update: Improve error message for fatal fixer errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13120&quot;&gt;#13120&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/438dcbb981214d67e8848006ce45afc0fbfa1705&quot;&gt;&lt;code&gt;438dcbb&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/comma-style&quot;&gt;comma-style&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13111&quot;&gt;#13111&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85b72548c0c893499c787b82f404348e1b50354d&quot;&gt;&lt;code&gt;85b7254&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-inner-declarations&quot;&gt;no-inner-declarations&lt;/a&gt; false negative in non-block (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12222&quot;&gt;#12222&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13062&quot;&gt;#13062&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6631ef1678bbdd48680fb3025c3692abd0aeec4a&quot;&gt;&lt;code&gt;6631ef1&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/no-empty-function&quot;&gt;no-empty-function&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13121&quot;&gt;#13121&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0f1b6c3d62f725b99b8c07654603b559ba43ba9&quot;&gt;&lt;code&gt;e0f1b6c&lt;/code&gt;&lt;/a&gt; Update: stricter array index check in &lt;a href=&quot;https://eslint.org/docs/rules/no-magic-numbers&quot;&gt;no-magic-numbers&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12845&quot;&gt;#12845&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12851&quot;&gt;#12851&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/362713c04aa89092b2b98a77fa94a75b3c933fc6&quot;&gt;&lt;code&gt;362713c&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/template-curly-spacing&quot;&gt;template-curly-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12813&quot;&gt;#12813&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/105384ccc11dcd7303104fb5a347eda1d4d48357&quot;&gt;&lt;code&gt;105384c&lt;/code&gt;&lt;/a&gt; Update: report operator location in &lt;a href=&quot;https://eslint.org/docs/rules/operator-linebreak&quot;&gt;operator-linebreak&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13102&quot;&gt;#13102&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/081e24022a40d9a026ddd2a85c68cb8c3f18dc53&quot;&gt;&lt;code&gt;081e240&lt;/code&gt;&lt;/a&gt; Update: support globalThis in &lt;a href=&quot;https://eslint.org/docs/rules/no-implied-eval&quot;&gt;no-implied-eval&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12670&quot;&gt;#12670&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13105&quot;&gt;#13105&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1370abed72e1fb93e601816d981fa6e46204afb&quot;&gt;&lt;code&gt;a1370ab&lt;/code&gt;&lt;/a&gt; Update: Report constructor calls in &lt;a href=&quot;https://eslint.org/docs/rules/no-obj-calls&quot;&gt;no-obj-calls&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12909&quot;&gt;#12909&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/085979fed9a5e24a87e4d92ee79272b59211d03f&quot;&gt;&lt;code&gt;085979f&lt;/code&gt;&lt;/a&gt; Update: consider env in &lt;a href=&quot;https://eslint.org/docs/rules/no-implied-eval&quot;&gt;no-implied-eval&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12733&quot;&gt;#12733&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12757&quot;&gt;#12757&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e90b29bb1f41d4e5767e33d03db5984f036586ed&quot;&gt;&lt;code&gt;e90b29b&lt;/code&gt;&lt;/a&gt; Update: Allow testing Suggestions with data in RuleTester (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12606&quot;&gt;#12606&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12635&quot;&gt;#12635&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/183e3006841c29efdd245c45a72e6cefac86ae35&quot;&gt;&lt;code&gt;183e300&lt;/code&gt;&lt;/a&gt; Update: support globalThis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12670&quot;&gt;#12670&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12774&quot;&gt;#12774&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12997058626b5167ba4b9d2ae0d0ea965a01c4be&quot;&gt;&lt;code&gt;1299705&lt;/code&gt;&lt;/a&gt; Update: acorn version (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13016&quot;&gt;#13016&lt;/a&gt;) (Idan Avrahami)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a5b41a75b57572e97476b06ad39b768e15b9d844&quot;&gt;&lt;code&gt;a5b41a7&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-modules&quot;&gt;no-restricted-modules&lt;/a&gt; handle TemplateLiteral (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12926&quot;&gt;#12926&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12927&quot;&gt;#12927&lt;/a&gt;) (Michal Piechowiak)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/051567adca7ca56d691bcda76f54ed72e3eae367&quot;&gt;&lt;code&gt;051567a&lt;/code&gt;&lt;/a&gt; Update: check identifier in array pattern in &lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;id-length&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12832&quot;&gt;#12832&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12839&quot;&gt;#12839&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9038a29569548c0563c29dbe9f7dae280ff3addd&quot;&gt;&lt;code&gt;9038a29&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/func-names&quot;&gt;func-names&lt;/a&gt; &lt;code&gt;as-needed&lt;/code&gt; false negative with AssignmentPattern (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12932&quot;&gt;#12932&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7747177f8504961059b7c56bdb70a820bd1114c1&quot;&gt;&lt;code&gt;7747177&lt;/code&gt;&lt;/a&gt; Update: report rename id destructuring in &lt;a href=&quot;https://eslint.org/docs/rules/id-blacklist&quot;&gt;id-blacklist&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12807&quot;&gt;#12807&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12923&quot;&gt;#12923&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/77df505d9a08496a8eaefeca4f885f54a21d5c5e&quot;&gt;&lt;code&gt;77df505&lt;/code&gt;&lt;/a&gt; Update: check renaming identifier in object destructuring (fixes 12827) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12881&quot;&gt;#12881&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41de9df41a30a4300243bfe4ca26f716a787b2fc&quot;&gt;&lt;code&gt;41de9df&lt;/code&gt;&lt;/a&gt; Update: enforceForLogicalOperands &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;no-extra-boolean-cast&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12137&quot;&gt;#12137&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12734&quot;&gt;#12734&lt;/a&gt;) (jmoore914)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ee6b6388305a8671c8d4c3cf30c2dbf18a1ff7e&quot;&gt;&lt;code&gt;1ee6b63&lt;/code&gt;&lt;/a&gt; Update: check template literal in &lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;yoda&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12863&quot;&gt;#12863&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12876&quot;&gt;#12876&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/439c83342c364ba3ce5168d54e165b1fe3e35630&quot;&gt;&lt;code&gt;439c833&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; checks Array.forEach (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12551&quot;&gt;#12551&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12646&quot;&gt;#12646&lt;/a&gt;) (Gabriel R Sezefredo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03a69dbe86d5b5768a310105416ae726822e3c1c&quot;&gt;&lt;code&gt;03a69db&lt;/code&gt;&lt;/a&gt; Update: check template literal in &lt;a href=&quot;https://eslint.org/docs/rules/no-proto&quot;&gt;no-proto&lt;/a&gt;, &lt;a href=&quot;https://eslint.org/docs/rules/no-iterator&quot;&gt;no-iterator&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12801&quot;&gt;#12801&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12806&quot;&gt;#12806&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/562e7845946a490f2e173a0bcd1af631070a4eef&quot;&gt;&lt;code&gt;562e784&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-magic-numbers&quot;&gt;no-magic-numbers&lt;/a&gt; false negative with ignoreArrayIndexes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12805&quot;&gt;#12805&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0460748cda67ddc4a4cb0db3cdf187a742d09bf8&quot;&gt;&lt;code&gt;0460748&lt;/code&gt;&lt;/a&gt; Update: check template literal in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12815&quot;&gt;#12815&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12816&quot;&gt;#12816&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e59d77536bd8db57e8a75cd5245f6f320aa699f8&quot;&gt;&lt;code&gt;e59d775&lt;/code&gt;&lt;/a&gt; Update: Separate pattern/expression options for &lt;a href=&quot;https://eslint.org/docs/rules/array-element-newline&quot;&gt;array-element-newline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11796&quot;&gt;#11796&lt;/a&gt;) (jacobparish)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8f115af6e10539e6cad485588187cb11917f8c9&quot;&gt;&lt;code&gt;f8f115a&lt;/code&gt;&lt;/a&gt; Update: treat comment tokens in &lt;a href=&quot;https://eslint.org/docs/rules/template-curly-spacing&quot;&gt;template-curly-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12744&quot;&gt;#12744&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12775&quot;&gt;#12775&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a93d9ef389c49a133c4df4f9843927f5f806423&quot;&gt;&lt;code&gt;9a93d9e&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; export * false negative (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12737&quot;&gt;#12737&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12798&quot;&gt;#12798&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68becbd84e8a0693409d36f2be10679c483e233a&quot;&gt;&lt;code&gt;68becbd&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; importNames reporting (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12282&quot;&gt;#12282&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12711&quot;&gt;#12711&lt;/a&gt;) (Andrey Alexandrov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae959b691fb148ac8b474c924c8cb01ef61c436d&quot;&gt;&lt;code&gt;ae959b6&lt;/code&gt;&lt;/a&gt; Update: report double extra parens in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12127&quot;&gt;#12127&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12697&quot;&gt;#12697&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b2c62096a8b318765d618cab222240f87d73063b&quot;&gt;&lt;code&gt;b2c6209&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; CallExpression#callee false negatives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12743&quot;&gt;#12743&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14b42c386be3387c415267b789f277e1294d4567&quot;&gt;&lt;code&gt;14b42c3&lt;/code&gt;&lt;/a&gt; Update: fix counting jsx comment len in &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12213&quot;&gt;#12213&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12661&quot;&gt;#12661&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/313f70ac9a3cf5d1558d2427b00dd75666e18cf4&quot;&gt;&lt;code&gt;313f70a&lt;/code&gt;&lt;/a&gt; Update: add outerIIFEBody: “off” to &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11377&quot;&gt;#11377&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12706&quot;&gt;#12706&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fa39a633b37544fec7cedfc1f2b0e62e9312a72&quot;&gt;&lt;code&gt;3fa39a6&lt;/code&gt;&lt;/a&gt; Update: Handle locally unsupported regex in computed property keys (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12056&quot;&gt;#12056&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f1020ff711b0c57d590bf666e2841f64186d083&quot;&gt;&lt;code&gt;8f1020f&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-void&quot;&gt;no-void&lt;/a&gt; add an option to allow void as a statement (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12613&quot;&gt;#12613&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb6cf5082623ffb67bb1495fee52c0610ee5f421&quot;&gt;&lt;code&gt;bb6cf50&lt;/code&gt;&lt;/a&gt; Update: Add offsetTernaryExpressions option for &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12556&quot;&gt;#12556&lt;/a&gt;) (Adam Stankiewicz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c0b028c55fc1674b374efe0bc6dd22c02b4ac88&quot;&gt;&lt;code&gt;4c0b028&lt;/code&gt;&lt;/a&gt; Fix: remove Node.js and CommonJS category from build process (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13242&quot;&gt;#13242&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d85e291d1b56960373031f2562547df7285444f7&quot;&gt;&lt;code&gt;d85e291&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;yoda&lt;/a&gt; left string fix for exceptRange (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12883&quot;&gt;#12883&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13052&quot;&gt;#13052&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e7a2d93595cfe0c1597af0e7873853369251c0b&quot;&gt;&lt;code&gt;8e7a2d9&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/func-call-spacing&quot;&gt;func-call-spacing&lt;/a&gt; “never” reports wrong message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13190&quot;&gt;#13190&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13193&quot;&gt;#13193&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebc28d76658f1f3e4e8d56e70a25752b5d4a6686&quot;&gt;&lt;code&gt;ebc28d7&lt;/code&gt;&lt;/a&gt; Fix: Remove default .js from --ext CLI option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13176&quot;&gt;#13176&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9a503571a4662f6c2d31cabc7fd7819ec388150&quot;&gt;&lt;code&gt;c9a5035&lt;/code&gt;&lt;/a&gt; Fix: newBasePath should be an absolute path (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12850&quot;&gt;#12850&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13078&quot;&gt;#13078&lt;/a&gt;) (Nick Harris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/301b450ecd1985ae84d1915124f4638ab2a2e6de&quot;&gt;&lt;code&gt;301b450&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; export default sequence expression false positive (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13096&quot;&gt;#13096&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfa811ceee801fe8ba212a5c879e13743146e909&quot;&gt;&lt;code&gt;bfa811c&lt;/code&gt;&lt;/a&gt; Fix: init error in extending recommended config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12707&quot;&gt;#12707&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12738&quot;&gt;#12738&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7551f0c6fd12f0295cc7d6377bf1899c092e79d8&quot;&gt;&lt;code&gt;7551f0c&lt;/code&gt;&lt;/a&gt; Fix: no check for shadowed Object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12809&quot;&gt;#12809&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13115&quot;&gt;#13115&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/988d8428811934943ce13b2d8b833d795ac2bb4a&quot;&gt;&lt;code&gt;988d842&lt;/code&gt;&lt;/a&gt; Fix: add end location to report in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-concat&quot;&gt;no-useless-concat&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13110&quot;&gt;#13110&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29f32db68c921a857e17ae627923d87b9c8708de&quot;&gt;&lt;code&gt;29f32db&lt;/code&gt;&lt;/a&gt; Fix: Change error message logic for implicit file ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12873&quot;&gt;#12873&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12878&quot;&gt;#12878&lt;/a&gt;) (Scott Hardin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb1a43ce3113c906800192c3ef766d2ff188776f&quot;&gt;&lt;code&gt;eb1a43c&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/require-await&quot;&gt;require-await&lt;/a&gt; ignore async generators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12459&quot;&gt;#12459&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13048&quot;&gt;#13048&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/920465b5d8d291df8bce7eef8a066b1dd43d8cae&quot;&gt;&lt;code&gt;920465b&lt;/code&gt;&lt;/a&gt; Fix: getNameLocationInGlobalDirectiveComment end location (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13086&quot;&gt;#13086&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae14a021bbea5117fe366ae4ed235e8f08dc65a8&quot;&gt;&lt;code&gt;ae14a02&lt;/code&gt;&lt;/a&gt; Fix: add end location to report in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-bind&quot;&gt;no-extra-bind&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13083&quot;&gt;#13083&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c20bc068e608869981a10711bba88ffde1539d8&quot;&gt;&lt;code&gt;0c20bc0&lt;/code&gt;&lt;/a&gt; Fix: check assignment property target in &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13025&quot;&gt;#13025&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13027&quot;&gt;#13027&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d50a7d82244d4912f3eab62a66c81c76c44a9da&quot;&gt;&lt;code&gt;8d50a7d&lt;/code&gt;&lt;/a&gt; Fix: add end location to report in &lt;a href=&quot;https://eslint.org/docs/rules/no-prototype-builtins&quot;&gt;no-prototype-builtins&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13087&quot;&gt;#13087&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e4e7f8d429dc70b78c0aefaa37f9c22a1e5fc0f&quot;&gt;&lt;code&gt;3e4e7f8&lt;/code&gt;&lt;/a&gt; Fix: incorrect logic for required parens in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;no-extra-boolean-cast&lt;/a&gt; fixer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13061&quot;&gt;#13061&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aef9488c07d3da4becff6e8d6918824b53086d86&quot;&gt;&lt;code&gt;aef9488&lt;/code&gt;&lt;/a&gt; Fix: allow references to external globals in &lt;a href=&quot;https://eslint.org/docs/rules/id-blacklist&quot;&gt;id-blacklist&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12567&quot;&gt;#12567&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12987&quot;&gt;#12987&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4955c50dc9e89b4077b28e35f065d45e89bdccd7&quot;&gt;&lt;code&gt;4955c50&lt;/code&gt;&lt;/a&gt; Fix: remove type arguments in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;prefer-object-spread&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13058&quot;&gt;#13058&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13063&quot;&gt;#13063&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dbe357de199620675446464f6fd0e35064c4d247&quot;&gt;&lt;code&gt;dbe357d&lt;/code&gt;&lt;/a&gt; Fix: check template literal in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-numeric-literals&quot;&gt;prefer-numeric-literals&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13045&quot;&gt;#13045&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13046&quot;&gt;#13046&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2260611e616bdc2a0bf16d508b60a50772ce7fbb&quot;&gt;&lt;code&gt;2260611&lt;/code&gt;&lt;/a&gt; Fix: added async in allow method in &lt;a href=&quot;https://eslint.org/docs/rules/no-empty-function&quot;&gt;no-empty-function&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12768&quot;&gt;#12768&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13036&quot;&gt;#13036&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7224eee3ff4b4378d3439deb038bf34b116fa48b&quot;&gt;&lt;code&gt;7224eee&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-plusplus&quot;&gt;no-plusplus&lt;/a&gt; allow comma operands in for afterthought (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13005&quot;&gt;#13005&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13024&quot;&gt;#13024&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7598cf816bd854de1dd7d96cf00dec6ecc4564ac&quot;&gt;&lt;code&gt;7598cf8&lt;/code&gt;&lt;/a&gt; Fix: Newline before eof when creating config via --init (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12952&quot;&gt;#12952&lt;/a&gt;) (Andreas Lind)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0243549db4d237cb78e720d55a9cae89b91f6830&quot;&gt;&lt;code&gt;0243549&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; false positive with computed property (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13022&quot;&gt;#13022&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13023&quot;&gt;#13023&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6cef0d50a0d131bc8897799a54e1af1d38606db4&quot;&gt;&lt;code&gt;6cef0d5&lt;/code&gt;&lt;/a&gt; Fix: Check division operator in astUtils.canTokensBeAdjacent (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12879&quot;&gt;#12879&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afde78b125747ce5ad9e5f871122a0d370dd0152&quot;&gt;&lt;code&gt;afde78b&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;curly&lt;/a&gt; removes necessary braces between if and else (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12928&quot;&gt;#12928&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12943&quot;&gt;#12943&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4797fb2c29db97bc5cd23b40e5a9235fef1ea06a&quot;&gt;&lt;code&gt;4797fb2&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/arrow-body-style&quot;&gt;arrow-body-style&lt;/a&gt; crash with object literal body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12884&quot;&gt;#12884&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12886&quot;&gt;#12886&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de14d1ce0cf422b4100a686abb906f53fbf905b3&quot;&gt;&lt;code&gt;de14d1c&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/wrap-iife&quot;&gt;wrap-iife&lt;/a&gt; autofix removes mandatory parentheses (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12905&quot;&gt;#12905&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5775b06a74573cbe068bea56b1d2376421f5e831&quot;&gt;&lt;code&gt;5775b06&lt;/code&gt;&lt;/a&gt; Fix: Optionally allow underscores in member names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11972&quot;&gt;#11972&lt;/a&gt;) (Edgardo Avilés)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0dfc3ff9fb228e1d9b1df99de50033ce9140ac24&quot;&gt;&lt;code&gt;0dfc3ff&lt;/code&gt;&lt;/a&gt; Fix: add end location to report in &lt;a href=&quot;https://eslint.org/docs/rules/no-eval&quot;&gt;no-eval&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12960&quot;&gt;#12960&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f1424cb200e609d58645f6c54739e11469e6265&quot;&gt;&lt;code&gt;1f1424c&lt;/code&gt;&lt;/a&gt; Fix: fix inconsistently works option in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12717&quot;&gt;#12717&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12843&quot;&gt;#12843&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b5adcaab93f388f1d8e9d35d6f5e8c2994240850&quot;&gt;&lt;code&gt;b5adcaa&lt;/code&gt;&lt;/a&gt; Fix: make YieldExpression throwable (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12880&quot;&gt;#12880&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12897&quot;&gt;#12897&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95e0586c95e6953d11983d1d11891ed30318109a&quot;&gt;&lt;code&gt;95e0586&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/id-blacklist&quot;&gt;id-blacklist&lt;/a&gt; false positives on renamed imports (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12831&quot;&gt;#12831&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dadc8927820576c60b48bcbc7d5a9056a6279d30&quot;&gt;&lt;code&gt;dadc892&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;operator-assignment&lt;/a&gt; crash on adjacent division assignment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12844&quot;&gt;#12844&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9d92f991d69902a9150db373590e2ed54dec988&quot;&gt;&lt;code&gt;a9d92f9&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/radix&quot;&gt;radix&lt;/a&gt; rule crash on disabled globals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12824&quot;&gt;#12824&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/533c1140dc98bebdc3ae8334ab2e6c27c7df0c21&quot;&gt;&lt;code&gt;533c114&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; rule add extra space after * (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12785&quot;&gt;#12785&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12823&quot;&gt;#12823&lt;/a&gt;) (Karthik Priyadarshan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/80309c3791188ac5d1c4eebc99ede323a55336e6&quot;&gt;&lt;code&gt;80309c3&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; doesn’t introspect arrays (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12225&quot;&gt;#12225&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12307&quot;&gt;#12307&lt;/a&gt;) (Sean Gray)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de4fa7c65c7befefa64d1605550267071ee56a5d&quot;&gt;&lt;code&gt;de4fa7c&lt;/code&gt;&lt;/a&gt; Fix: wrong &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; at tagged template in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12122&quot;&gt;#12122&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12596&quot;&gt;#12596&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16a1c1f79bc0a4cc1c3a87e98d220041de88bb93&quot;&gt;&lt;code&gt;16a1c1f&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;prefer-object-spread&lt;/a&gt; false positives with accessors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12086&quot;&gt;#12086&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12784&quot;&gt;#12784&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d8c0affe1ae7ecf228cdf91b490921f7e9d1fdb&quot;&gt;&lt;code&gt;0d8c0af&lt;/code&gt;&lt;/a&gt; Fix: improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;computed-property-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12795&quot;&gt;#12795&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/756b95d59fb97cd9b3f3adf98cebf529fe4842a2&quot;&gt;&lt;code&gt;756b95d&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/id-blacklist&quot;&gt;id-blacklist&lt;/a&gt; should ignore ObjectPatterns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12787&quot;&gt;#12787&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12792&quot;&gt;#12792&lt;/a&gt;) (JP Ramassini)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/01ff7910af86fc45b76e883bc9ab00c9be3b50ac&quot;&gt;&lt;code&gt;01ff791&lt;/code&gt;&lt;/a&gt; Fix: Display pipe character correctly in test output (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12771&quot;&gt;#12771&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/00ddfffe6b4b4244e4680b0f92f2c6697fad136f&quot;&gt;&lt;code&gt;00ddfff&lt;/code&gt;&lt;/a&gt; Fix: Windows path parsing for JUnit (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12507&quot;&gt;#12507&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12509&quot;&gt;#12509&lt;/a&gt;) (Michael Wall)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1aff21bb54da44cef0b6e378a34a74265863b930&quot;&gt;&lt;code&gt;1aff21b&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-spaces-and-tabs&quot;&gt;no-mixed-spaces-and-tabs&lt;/a&gt; reports multiline strings (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12566&quot;&gt;#12566&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b5c8d7389bb2c5d4eae850b866832d099187818b&quot;&gt;&lt;code&gt;b5c8d73&lt;/code&gt;&lt;/a&gt; Docs: update 7.0.0 migration guide for consistency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13267&quot;&gt;#13267&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/356fdb46aa118ba3d81cee93e8c058a7c98acaf9&quot;&gt;&lt;code&gt;356fdb4&lt;/code&gt;&lt;/a&gt; Docs: add migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12692&quot;&gt;#12692&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/56d2beea0ea0b6395a6d4a3e116ea6a964ff92f3&quot;&gt;&lt;code&gt;56d2bee&lt;/code&gt;&lt;/a&gt; Docs: fix typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13204&quot;&gt;#13204&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/516f253729daeeb9da5de5e9b38606ff9c1aae71&quot;&gt;&lt;code&gt;516f253&lt;/code&gt;&lt;/a&gt; Docs: Adds import example for &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12018&quot;&gt;#12018&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13177&quot;&gt;#13177&lt;/a&gt;) (Luke Lewis)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b398e0b9ff455e4e7d70f19d5ccea5819c21eb86&quot;&gt;&lt;code&gt;b398e0b&lt;/code&gt;&lt;/a&gt; Docs: add rule comment in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-rest-params&quot;&gt;prefer-rest-params&lt;/a&gt; doc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13191&quot;&gt;#13191&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c41de382a330d4789488fd2dcf6db5a3163bb5d2&quot;&gt;&lt;code&gt;c41de38&lt;/code&gt;&lt;/a&gt; Docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;curly&lt;/a&gt; multi-or-nest examples with comments (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12972&quot;&gt;#12972&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13151&quot;&gt;#13151&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57221d58c60e757062242f30ed574e0502fc7c31&quot;&gt;&lt;code&gt;57221d5&lt;/code&gt;&lt;/a&gt; Docs: fix eslint comment in &lt;a href=&quot;https://eslint.org/docs/rules/no-inner-declarations&quot;&gt;no-inner-declarations&lt;/a&gt; examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13152&quot;&gt;#13152&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5dfd4eb50d84077a57950f119e5de8976070e49a&quot;&gt;&lt;code&gt;5dfd4eb&lt;/code&gt;&lt;/a&gt; Docs: examples with arrow functions in &lt;a href=&quot;https://eslint.org/docs/rules/no-return-assign&quot;&gt;no-return-assign&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13135&quot;&gt;#13135&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13138&quot;&gt;#13138&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/adc8fa88c9f223b984a3519ed159a055bf933b18&quot;&gt;&lt;code&gt;adc8fa8&lt;/code&gt;&lt;/a&gt; Docs: clarify exceptions in &lt;a href=&quot;https://eslint.org/docs/rules/spaced-comment&quot;&gt;spaced-comment&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13032&quot;&gt;#13032&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13126&quot;&gt;#13126&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b228f958afaf507d6f6f99c90b2075b395733839&quot;&gt;&lt;code&gt;b228f95&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c069f907a04268b671c7f949c04a508df9d42a3&quot;&gt;&lt;code&gt;6c069f9&lt;/code&gt;&lt;/a&gt; Docs: Add comments to code block in example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13089&quot;&gt;#13089&lt;/a&gt;) (Kibeom Kwon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee1f0531aa534ef9182cf8586f55ad82aaa55e75&quot;&gt;&lt;code&gt;ee1f053&lt;/code&gt;&lt;/a&gt; Docs: Fix typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13092&quot;&gt;#13092&lt;/a&gt;) (Max Coplan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/76324ace67893c3d7e38a369114d6128df9ffb65&quot;&gt;&lt;code&gt;76324ac&lt;/code&gt;&lt;/a&gt; Docs: Add further reading to rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13084&quot;&gt;#13084&lt;/a&gt;) (Max Coplan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3f7c9bf19615122fb776cdd13da532d860bd945a&quot;&gt;&lt;code&gt;3f7c9bf&lt;/code&gt;&lt;/a&gt; Docs: clarify variables option in &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;no-use-before-define&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12986&quot;&gt;#12986&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13017&quot;&gt;#13017&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ac5b9edf06d16a9216c2c9b02bb20b6aa8ed0ab&quot;&gt;&lt;code&gt;9ac5b9e&lt;/code&gt;&lt;/a&gt; Docs: Clarify node_modules is ignored by default (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13006&quot;&gt;#13006&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13054&quot;&gt;#13054&lt;/a&gt;) (Mika Kuijpers)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0de91f39a97cdf530cb64edbadde57a2bb41ca86&quot;&gt;&lt;code&gt;0de91f3&lt;/code&gt;&lt;/a&gt; Docs: removed correct code from incorrect eg (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13060&quot;&gt;#13060&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af7af9d32ea8073d2d0d726cc8551351261a170f&quot;&gt;&lt;code&gt;af7af9d&lt;/code&gt;&lt;/a&gt; Docs: Update governance (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13055&quot;&gt;#13055&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79ac6cd2d8e4c32e03dfea10a957806845058573&quot;&gt;&lt;code&gt;79ac6cd&lt;/code&gt;&lt;/a&gt; Docs: added less confusing explanation for &lt;a href=&quot;https://eslint.org/docs/rules/func-style&quot;&gt;func-style&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12900&quot;&gt;#12900&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13004&quot;&gt;#13004&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8e20d33b7d6645266beef09cd231afaf5054328&quot;&gt;&lt;code&gt;b8e20d3&lt;/code&gt;&lt;/a&gt; Docs: Mention TypeScript’s compiler check (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12903&quot;&gt;#12903&lt;/a&gt;) (Benny Neugebauer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e997f32b936463ac38e8b0034f764c47502e56a8&quot;&gt;&lt;code&gt;e997f32&lt;/code&gt;&lt;/a&gt; Docs: Updated &lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;arrow-parens&lt;/a&gt; for minor grammar issue (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12962&quot;&gt;#12962&lt;/a&gt;) (Tom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf14355e34a6757e15806f8e493553bd7110fb36&quot;&gt;&lt;code&gt;cf14355&lt;/code&gt;&lt;/a&gt; Docs: Fix links to custom parsers doc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12965&quot;&gt;#12965&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f479f6fe2eb95156e22bebfccb39a7fc1f19e9c0&quot;&gt;&lt;code&gt;f479f6f&lt;/code&gt;&lt;/a&gt; Docs: References correct config file name (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12885&quot;&gt;#12885&lt;/a&gt;) (Patrick Kilgore)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d5c434f721142be74c7515aaa935668a15b79b1&quot;&gt;&lt;code&gt;8d5c434&lt;/code&gt;&lt;/a&gt; Docs: fix category descriptions for site generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12894&quot;&gt;#12894&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12930&quot;&gt;#12930&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05380e6e7e19a79d26ea6d6b44a8d5ee7cde51c8&quot;&gt;&lt;code&gt;05380e6&lt;/code&gt;&lt;/a&gt; Docs: Remove claim about semicolons from docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12944&quot;&gt;#12944&lt;/a&gt;) (Luke Sikina)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/824d23585c205f2993716585cb6f55dfbe4a33f0&quot;&gt;&lt;code&gt;824d235&lt;/code&gt;&lt;/a&gt; Docs: add errorOnUnmatchedPattern option to CLIEngine (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12834&quot;&gt;#12834&lt;/a&gt;) (Arthur Denner)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/33efd71d7c3496b4b9cbfe006280527064940826&quot;&gt;&lt;code&gt;33efd71&lt;/code&gt;&lt;/a&gt; Docs: Fix spelling mistakes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12861&quot;&gt;#12861&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a5b3c5fa4edc2312534af0d9f0911f68144f8baf&quot;&gt;&lt;code&gt;a5b3c5f&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6c313de794ea0671d35b5027288cd2ea456c0b5&quot;&gt;&lt;code&gt;d6c313d&lt;/code&gt;&lt;/a&gt; Docs: add missing eslint comments in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-regex-literals&quot;&gt;prefer-regex-literals&lt;/a&gt; examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12858&quot;&gt;#12858&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aea172998ec4e2af1d9186b6767c3f34428945f4&quot;&gt;&lt;code&gt;aea1729&lt;/code&gt;&lt;/a&gt; Docs: Fix anchor links in Node.js API TOC (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12821&quot;&gt;#12821&lt;/a&gt;) (Matija Marohnić)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02fcc055710e8d69d986f1e682cae2014ad881e2&quot;&gt;&lt;code&gt;02fcc05&lt;/code&gt;&lt;/a&gt; Docs: Improve &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;sort-keys&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12791&quot;&gt;#12791&lt;/a&gt;) (Steven Vachon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25eb703c8758563988ffb497a53f89a3ed345399&quot;&gt;&lt;code&gt;25eb703&lt;/code&gt;&lt;/a&gt; Docs: fix dead link in &lt;a href=&quot;https://eslint.org/docs/rules/max-lines&quot;&gt;max-lines&lt;/a&gt; rule docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12766&quot;&gt;#12766&lt;/a&gt;) (Christian Bundy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/098b67d04a4b4dc8ef4faa6434c6ef5abbde3ed3&quot;&gt;&lt;code&gt;098b67d&lt;/code&gt;&lt;/a&gt; Docs: fix minor typo in &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12749&quot;&gt;#12749&lt;/a&gt;) (Marko Kaznovac)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b23ad0d789a909baf8d7c41a35bc53df932eaf30&quot;&gt;&lt;code&gt;b23ad0d&lt;/code&gt;&lt;/a&gt; Docs: change a broken link in &lt;a href=&quot;http://working-with-rules.md/&quot;&gt;working-with-rules.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12732&quot;&gt;#12732&lt;/a&gt;) (Damien Cassou)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b98d8bda4630fe8278c5aa2b6650630770568fe5&quot;&gt;&lt;code&gt;b98d8bd&lt;/code&gt;&lt;/a&gt; Upgrade: eslint-release@2.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13271&quot;&gt;#13271&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3eeae565bfb0834a31e5d3a253a17bbf4027cf88&quot;&gt;&lt;code&gt;3eeae56&lt;/code&gt;&lt;/a&gt; Upgrade: some (dev) deps (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13155&quot;&gt;#13155&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95e1c70cebde210a990ee786ec7ab1c8e522edb8&quot;&gt;&lt;code&gt;95e1c70&lt;/code&gt;&lt;/a&gt; Upgrade: levn@0.4.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9366&quot;&gt;#9366&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13140&quot;&gt;#13140&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2111c52443e7641caad291e0daaea8e2fe6c4562&quot;&gt;&lt;code&gt;2111c52&lt;/code&gt;&lt;/a&gt; Upgrade: esquery@1.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13076&quot;&gt;#13076&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95613d46b7900b3d9757a7f6959d5dfb262f29fc&quot;&gt;&lt;code&gt;95613d4&lt;/code&gt;&lt;/a&gt; Upgrade: espree@6.2.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13026&quot;&gt;#13026&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e632c31d7e5363f1347b787702ecd4a85f5c11a2&quot;&gt;&lt;code&gt;e632c31&lt;/code&gt;&lt;/a&gt; Upgrade: several dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12753&quot;&gt;#12753&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d1b4db9932cf7c3289187afbb3866a83f9b3f8c&quot;&gt;&lt;code&gt;8d1b4db&lt;/code&gt;&lt;/a&gt; Build: changelog update for 7.0.0-rc.0 (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2531b802a1527ea1084905641a17befcb50350c7&quot;&gt;&lt;code&gt;2531b80&lt;/code&gt;&lt;/a&gt; Build: changelog update for 7.0.0-alpha.3 (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e8f193ebc970f07ea37d267c8bce02d74c285a8&quot;&gt;&lt;code&gt;2e8f193&lt;/code&gt;&lt;/a&gt; Build: changelog update for 7.0.0-alpha.2 (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e9f1073f748f8c22f754d145b1ba193e7ce82215&quot;&gt;&lt;code&gt;e9f1073&lt;/code&gt;&lt;/a&gt; Build: changelog update for 7.0.0-alpha.1 (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c8c1b2b2efadfcd3c04aaf15bd793c5b4dd84cb6&quot;&gt;&lt;code&gt;c8c1b2b&lt;/code&gt;&lt;/a&gt; Build: changelog update for 7.0.0-alpha.0 (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e169576a526023ee297d5bc8b37eedba229f63d&quot;&gt;&lt;code&gt;4e16957&lt;/code&gt;&lt;/a&gt; Build: update browser build (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12693&quot;&gt;#12693&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/827259ea009f98a0fdf3f7ebf1bfb6cd661ce28d&quot;&gt;&lt;code&gt;827259e&lt;/code&gt;&lt;/a&gt; Build: package.json update for eslint-config-eslint release (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/401a68799d9d15145e1c7d92ee04644abec2f15a&quot;&gt;&lt;code&gt;401a687&lt;/code&gt;&lt;/a&gt; Chore: fix rules list for prereleases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13230&quot;&gt;#13230&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ce6bed04cad376003f70447ece4b6578c142bfd&quot;&gt;&lt;code&gt;2ce6bed&lt;/code&gt;&lt;/a&gt; Chore: added tests for nested arrays (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13145&quot;&gt;#13145&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6b7030b1a1e1e3d1a3953cfa9722074d6a6fc1a9&quot;&gt;&lt;code&gt;6b7030b&lt;/code&gt;&lt;/a&gt; Chore: Run tests on Node.js v14 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13210&quot;&gt;#13210&lt;/a&gt;) (fisker Cheung)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e13256e395cc413ce45a66c8562621d48440d8f4&quot;&gt;&lt;code&gt;e13256e&lt;/code&gt;&lt;/a&gt; Chore: use espree.latestEcmaVersion in config-initializer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13157&quot;&gt;#13157&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4f57b7d7b8b7441a2217a217dcda1e7bfff516a&quot;&gt;&lt;code&gt;e4f57b7&lt;/code&gt;&lt;/a&gt; Chore: add nested array tests for &lt;a href=&quot;https://eslint.org/docs/rules/array-element-newline&quot;&gt;array-element-newline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13161&quot;&gt;#13161&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bc0c02cd0368559c7a7b1510eb4620022a4cc31c&quot;&gt;&lt;code&gt;bc0c02c&lt;/code&gt;&lt;/a&gt; Chore: added lock files to gitignore (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13015&quot;&gt;#13015&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26267ed70270ef746b785c09e267f815bf7c596a&quot;&gt;&lt;code&gt;26267ed&lt;/code&gt;&lt;/a&gt; Chore: update GitHub Actions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12984&quot;&gt;#12984&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/472025f2814d0360fe8d4cddbcba049982e1cd43&quot;&gt;&lt;code&gt;472025f&lt;/code&gt;&lt;/a&gt; Chore: update &lt;a href=&quot;https://eslint.org/docs/rules/space-before-function-paren&quot;&gt;space-before-function-paren&lt;/a&gt; in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12966&quot;&gt;#12966&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1907e57362f7d5f7a02a5a78f24ac3347f868e93&quot;&gt;&lt;code&gt;1907e57&lt;/code&gt;&lt;/a&gt; Chore: add Twitter and Open Collective badge (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12877&quot;&gt;#12877&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7f0d200c125b3d233ccafaabdaa61c66dc60e3c&quot;&gt;&lt;code&gt;b7f0d20&lt;/code&gt;&lt;/a&gt; Chore: Use consistent badge style (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12825&quot;&gt;#12825&lt;/a&gt;) (fisker Cheung)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3734a669983de7d5107ba8f39b291c6e3116489f&quot;&gt;&lt;code&gt;3734a66&lt;/code&gt;&lt;/a&gt; Chore: use ids for messages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12859&quot;&gt;#12859&lt;/a&gt;) (Gareth Jones)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0cae9203a8077184ad6beb00028fd376cc806f34&quot;&gt;&lt;code&gt;0cae920&lt;/code&gt;&lt;/a&gt; Chore: rename shadowed global (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12862&quot;&gt;#12862&lt;/a&gt;) (Tony Brix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/055b80dc89bba2a5ab22f7a27deb40135b5cacfa&quot;&gt;&lt;code&gt;055b80d&lt;/code&gt;&lt;/a&gt; Chore: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;complexity&lt;/a&gt;.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12864&quot;&gt;#12864&lt;/a&gt;) (Kyle Shevlin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f39ef0d4b398c7c09ceef89128da448680d587c&quot;&gt;&lt;code&gt;9f39ef0&lt;/code&gt;&lt;/a&gt; Chore: typo in PULL_REQUEST_TEMPLATE.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12848&quot;&gt;#12848&lt;/a&gt;) (Balázs Orbán)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a60d5cd2325ca72fa1b272b0b90ccd7904b92062&quot;&gt;&lt;code&gt;a60d5cd&lt;/code&gt;&lt;/a&gt; Chore: typo in &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt;.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12847&quot;&gt;#12847&lt;/a&gt;) (Balázs Orbán)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/691d19a2872bffab50c0024d488b8cb33504cc83&quot;&gt;&lt;code&gt;691d19a&lt;/code&gt;&lt;/a&gt; Chore: add missing &lt;code&gt;ecmaVersion&lt;/code&gt; 2020/11 type value (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12833&quot;&gt;#12833&lt;/a&gt;) (Piotr Błażejewicz (Peter Blazejewicz))&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5b96564f732962f46755adbb33c49fae9af6a92&quot;&gt;&lt;code&gt;f5b9656&lt;/code&gt;&lt;/a&gt; Chore: add test for &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12836&quot;&gt;#12836&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10a79a672b42d51539bcd6ace482be7afa5f34f8&quot;&gt;&lt;code&gt;10a79a6&lt;/code&gt;&lt;/a&gt; Chore: Adopt &lt;code&gt;eslint-plugin/require-meta-docs-description&lt;/code&gt; internally (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12762&quot;&gt;#12762&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/561b6d4726f3e77dd40ba0d340ca7f08429cd2eb&quot;&gt;&lt;code&gt;561b6d4&lt;/code&gt;&lt;/a&gt; Chore: add prerequisites checklist to PR template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12790&quot;&gt;#12790&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9dfc8501fb1956c90dc11e6377b4cb38a6bea65d&quot;&gt;&lt;code&gt;9dfc850&lt;/code&gt;&lt;/a&gt; Chore: Refactor to use messageId in a number of rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12715&quot;&gt;#12715&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b77b8585e33fc4bb438a0e11ca8177c7eb91dbd8&quot;&gt;&lt;code&gt;b77b858&lt;/code&gt;&lt;/a&gt; Chore: fix separateRequires tests for &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12709&quot;&gt;#12709&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4df7dfb0199badb61d2c03ff4f7e4be735279d9&quot;&gt;&lt;code&gt;e4df7df&lt;/code&gt;&lt;/a&gt; Chore: add JSDoc types for RuleTester test cases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12325&quot;&gt;#12325&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/474439720258b1a64b305c31588f803104fa4aaf&quot;&gt;&lt;code&gt;4744397&lt;/code&gt;&lt;/a&gt; Chore: remove unused code in &lt;a href=&quot;https://eslint.org/docs/rules/max-lines-per-function&quot;&gt;max-lines-per-function&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12659&quot;&gt;#12659&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/39f5a453579b2ad732212edeb71f84ecb0991f97&quot;&gt;&lt;code&gt;39f5a45&lt;/code&gt;&lt;/a&gt; Chore: add test cases for &lt;a href=&quot;https://eslint.org/docs/rules/for-direction&quot;&gt;for-direction&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12698&quot;&gt;#12698&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3403045e535921df6d34785a4ce053e14ba27fd&quot;&gt;&lt;code&gt;b340304&lt;/code&gt;&lt;/a&gt; Chore: Add extra test, improve docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12492&quot;&gt;#12492&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.0.0-rc.0 released</title>
    <link href="https://eslint.org/blog/2020/04/eslint-v7.0.0-rc.0-released/"/>
    <updated>2020-04-24T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/04/eslint-v7.0.0-rc.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;This release includes a new asynchronous &lt;a href=&quot;https://eslint.org/docs/7.0.0/developer-guide/nodejs-api#eslint-class&quot;&gt;ESLint API&lt;/a&gt; for use in Node.js environments. This will allow for the support of ES Module configuration files and plugins and is a prerequisite for implementing &lt;a href=&quot;https://github.com/eslint/rfcs/pull/42&quot;&gt;parallel linting&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Node.js and CommonJS core rules have been deprecated in favor of &lt;a href=&quot;https://github.com/mysticatea/eslint-plugin-node&quot;&gt;eslint-plugin-node&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The reported error location has been fine-tuned in a number of core rules.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@7.0.0-rc.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/7.0.0/user-guide/migrating-to-7.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b1d65a45aa5dfe08cd596c420490e81b546317e&quot;&gt;&lt;code&gt;0b1d65a&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13109&quot;&gt;#13109&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3aac532f6a24c633f85dedf0e552eabd22d0956&quot;&gt;&lt;code&gt;d3aac53&lt;/code&gt;&lt;/a&gt; Update: report backtick loc in &lt;a href=&quot;https://eslint.org/docs/rules/no-unexpected-multiline&quot;&gt;no-unexpected-multiline&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13142&quot;&gt;#13142&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bcafd0f8508e19ab8087a35fac7b97fc4295df3e&quot;&gt;&lt;code&gt;bcafd0f&lt;/code&gt;&lt;/a&gt; Update: Add ESLint API (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/40&quot;&gt;eslint/rfcs#40&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12939&quot;&gt;#12939&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c1bdebcf728062fd41583886830c89b65485df9&quot;&gt;&lt;code&gt;5c1bdeb&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/getter-return&quot;&gt;getter-return&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13164&quot;&gt;#13164&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e7c1d4b2ac56149a517d4b0000230348a641f1d3&quot;&gt;&lt;code&gt;e7c1d4b&lt;/code&gt;&lt;/a&gt; Update: deprecate Node.js &amp;amp; CommonJS rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12898&quot;&gt;#12898&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af4472fed794b86e63730702e4b27294a4118d09&quot;&gt;&lt;code&gt;af4472f&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/new-cap&quot;&gt;new-cap&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13136&quot;&gt;#13136&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a784dac8bc26f31edbca869b16d6ad91bd4e5cc4&quot;&gt;&lt;code&gt;a784dac&lt;/code&gt;&lt;/a&gt; Update: Improve report location &lt;a href=&quot;https://eslint.org/docs/rules/newline-per-chained-call&quot;&gt;newline-per-chained-call&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13116&quot;&gt;#13116&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e07574a91861fdcab6888b4c6829868030c3a39&quot;&gt;&lt;code&gt;5e07574&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/space-before-function-paren&quot;&gt;space-before-function-paren&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13128&quot;&gt;#13128&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17e2fe425168e675fe7607182615e50527eedf53&quot;&gt;&lt;code&gt;17e2fe4&lt;/code&gt;&lt;/a&gt; Update: Improve error message for fatal fixer errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13120&quot;&gt;#13120&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/438dcbb981214d67e8848006ce45afc0fbfa1705&quot;&gt;&lt;code&gt;438dcbb&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/comma-style&quot;&gt;comma-style&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13111&quot;&gt;#13111&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85b72548c0c893499c787b82f404348e1b50354d&quot;&gt;&lt;code&gt;85b7254&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-inner-declarations&quot;&gt;no-inner-declarations&lt;/a&gt; false negative in non-block (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12222&quot;&gt;#12222&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13062&quot;&gt;#13062&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6631ef1678bbdd48680fb3025c3692abd0aeec4a&quot;&gt;&lt;code&gt;6631ef1&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/no-empty-function&quot;&gt;no-empty-function&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13121&quot;&gt;#13121&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d85e291d1b56960373031f2562547df7285444f7&quot;&gt;&lt;code&gt;d85e291&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;yoda&lt;/a&gt; left string fix for exceptRange (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12883&quot;&gt;#12883&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13052&quot;&gt;#13052&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e7a2d93595cfe0c1597af0e7873853369251c0b&quot;&gt;&lt;code&gt;8e7a2d9&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/func-call-spacing&quot;&gt;func-call-spacing&lt;/a&gt; “never” reports wrong message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13190&quot;&gt;#13190&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13193&quot;&gt;#13193&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebc28d76658f1f3e4e8d56e70a25752b5d4a6686&quot;&gt;&lt;code&gt;ebc28d7&lt;/code&gt;&lt;/a&gt; Fix: Remove default .js from --ext CLI option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13176&quot;&gt;#13176&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9a503571a4662f6c2d31cabc7fd7819ec388150&quot;&gt;&lt;code&gt;c9a5035&lt;/code&gt;&lt;/a&gt; Fix: newBasePath should be an absolute path (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12850&quot;&gt;#12850&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13078&quot;&gt;#13078&lt;/a&gt;) (Nick Harris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/301b450ecd1985ae84d1915124f4638ab2a2e6de&quot;&gt;&lt;code&gt;301b450&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; export default sequence expression false positive (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13096&quot;&gt;#13096&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfa811ceee801fe8ba212a5c879e13743146e909&quot;&gt;&lt;code&gt;bfa811c&lt;/code&gt;&lt;/a&gt; Fix: init error in extending recommended config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12707&quot;&gt;#12707&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12738&quot;&gt;#12738&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7551f0c6fd12f0295cc7d6377bf1899c092e79d8&quot;&gt;&lt;code&gt;7551f0c&lt;/code&gt;&lt;/a&gt; Fix: no check for shadowed Object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12809&quot;&gt;#12809&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13115&quot;&gt;#13115&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/988d8428811934943ce13b2d8b833d795ac2bb4a&quot;&gt;&lt;code&gt;988d842&lt;/code&gt;&lt;/a&gt; Fix: add end location to report in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-concat&quot;&gt;no-useless-concat&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13110&quot;&gt;#13110&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/56d2beea0ea0b6395a6d4a3e116ea6a964ff92f3&quot;&gt;&lt;code&gt;56d2bee&lt;/code&gt;&lt;/a&gt; Docs: fix typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13204&quot;&gt;#13204&lt;/a&gt;) (Nitin Kumar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/516f253729daeeb9da5de5e9b38606ff9c1aae71&quot;&gt;&lt;code&gt;516f253&lt;/code&gt;&lt;/a&gt; Docs: Adds import example for &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12018&quot;&gt;#12018&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13177&quot;&gt;#13177&lt;/a&gt;) (Luke Lewis)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b398e0b9ff455e4e7d70f19d5ccea5819c21eb86&quot;&gt;&lt;code&gt;b398e0b&lt;/code&gt;&lt;/a&gt; Docs: add rule comment in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-rest-params&quot;&gt;prefer-rest-params&lt;/a&gt; doc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13191&quot;&gt;#13191&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c41de382a330d4789488fd2dcf6db5a3163bb5d2&quot;&gt;&lt;code&gt;c41de38&lt;/code&gt;&lt;/a&gt; Docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;curly&lt;/a&gt; multi-or-nest examples with comments (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12972&quot;&gt;#12972&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13151&quot;&gt;#13151&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57221d58c60e757062242f30ed574e0502fc7c31&quot;&gt;&lt;code&gt;57221d5&lt;/code&gt;&lt;/a&gt; Docs: fix eslint comment in &lt;a href=&quot;https://eslint.org/docs/rules/no-inner-declarations&quot;&gt;no-inner-declarations&lt;/a&gt; examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13152&quot;&gt;#13152&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5dfd4eb50d84077a57950f119e5de8976070e49a&quot;&gt;&lt;code&gt;5dfd4eb&lt;/code&gt;&lt;/a&gt; Docs: examples with arrow functions in &lt;a href=&quot;https://eslint.org/docs/rules/no-return-assign&quot;&gt;no-return-assign&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13135&quot;&gt;#13135&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13138&quot;&gt;#13138&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/adc8fa88c9f223b984a3519ed159a055bf933b18&quot;&gt;&lt;code&gt;adc8fa8&lt;/code&gt;&lt;/a&gt; Docs: clarify exceptions in &lt;a href=&quot;https://eslint.org/docs/rules/spaced-comment&quot;&gt;spaced-comment&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13032&quot;&gt;#13032&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13126&quot;&gt;#13126&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b228f958afaf507d6f6f99c90b2075b395733839&quot;&gt;&lt;code&gt;b228f95&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3eeae565bfb0834a31e5d3a253a17bbf4027cf88&quot;&gt;&lt;code&gt;3eeae56&lt;/code&gt;&lt;/a&gt; Upgrade: some (dev) deps (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13155&quot;&gt;#13155&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95e1c70cebde210a990ee786ec7ab1c8e522edb8&quot;&gt;&lt;code&gt;95e1c70&lt;/code&gt;&lt;/a&gt; Upgrade: levn@0.4.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9366&quot;&gt;#9366&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13140&quot;&gt;#13140&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ce6bed04cad376003f70447ece4b6578c142bfd&quot;&gt;&lt;code&gt;2ce6bed&lt;/code&gt;&lt;/a&gt; Chore: added tests for nested arrays (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13145&quot;&gt;#13145&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6b7030b1a1e1e3d1a3953cfa9722074d6a6fc1a9&quot;&gt;&lt;code&gt;6b7030b&lt;/code&gt;&lt;/a&gt; Chore: Run tests on Node.js v14 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13210&quot;&gt;#13210&lt;/a&gt;) (fisker Cheung)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e13256e395cc413ce45a66c8562621d48440d8f4&quot;&gt;&lt;code&gt;e13256e&lt;/code&gt;&lt;/a&gt; Chore: use espree.latestEcmaVersion in config-initializer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13157&quot;&gt;#13157&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4f57b7d7b8b7441a2217a217dcda1e7bfff516a&quot;&gt;&lt;code&gt;e4f57b7&lt;/code&gt;&lt;/a&gt; Chore: add nested array tests for &lt;a href=&quot;https://eslint.org/docs/rules/array-element-newline&quot;&gt;array-element-newline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13161&quot;&gt;#13161&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.0.0-alpha.3 released</title>
    <link href="https://eslint.org/blog/2020/03/eslint-v7.0.0-alpha.3-released/"/>
    <updated>2020-03-27T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/03/eslint-v7.0.0-alpha.3-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This release contains the following breaking changes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2020/02/whats-coming-in-eslint-7.0.0#stricter-ruletester&quot;&gt;Making RuleTester checks stricter&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2020/02/whats-coming-in-eslint-7.0.0#plugins-loaded-from-config-file-directory&quot;&gt;Plugins are now loaded relative to the configs that reference them&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2020/02/whats-coming-in-eslint-7.0.0#updating-the-base-path-when-using-config-or-ignore-path&quot;&gt;Use the current working directory as base path when using &lt;code&gt;--config&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It also adds support for the following new language features:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Core rules now support &lt;code&gt;globalThis&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@7.0.0-alpha.3 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://github.com/eslint/eslint/pull/12692&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78c8cda5a5d82f5f8548c4528a6438d29756bb71&quot;&gt;&lt;code&gt;78c8cda&lt;/code&gt;&lt;/a&gt; Breaking: RuleTester Improvements (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/25&quot;&gt;eslint/rfcs#25&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12955&quot;&gt;#12955&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/185982d5615d325ae8b45c2360d5847df4098bda&quot;&gt;&lt;code&gt;185982d&lt;/code&gt;&lt;/a&gt; Breaking: improve plugin resolving (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/47&quot;&gt;eslint/rfcs#47&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12922&quot;&gt;#12922&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/48b122f450b14dd27afef4c8115c69fca4f02be1&quot;&gt;&lt;code&gt;48b122f&lt;/code&gt;&lt;/a&gt; Breaking: change relative paths with --config (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/37&quot;&gt;eslint/rfcs#37&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12887&quot;&gt;#12887&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0f1b6c3d62f725b99b8c07654603b559ba43ba9&quot;&gt;&lt;code&gt;e0f1b6c&lt;/code&gt;&lt;/a&gt; Update: stricter array index check in &lt;a href=&quot;https://eslint.org/docs/rules/no-magic-numbers&quot;&gt;no-magic-numbers&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12845&quot;&gt;#12845&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12851&quot;&gt;#12851&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/362713c04aa89092b2b98a77fa94a75b3c933fc6&quot;&gt;&lt;code&gt;362713c&lt;/code&gt;&lt;/a&gt; Update: Improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/template-curly-spacing&quot;&gt;template-curly-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12813&quot;&gt;#12813&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/105384ccc11dcd7303104fb5a347eda1d4d48357&quot;&gt;&lt;code&gt;105384c&lt;/code&gt;&lt;/a&gt; Update: report operator location in &lt;a href=&quot;https://eslint.org/docs/rules/operator-linebreak&quot;&gt;operator-linebreak&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13102&quot;&gt;#13102&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/081e24022a40d9a026ddd2a85c68cb8c3f18dc53&quot;&gt;&lt;code&gt;081e240&lt;/code&gt;&lt;/a&gt; Update: support globalThis in &lt;a href=&quot;https://eslint.org/docs/rules/no-implied-eval&quot;&gt;no-implied-eval&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12670&quot;&gt;#12670&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13105&quot;&gt;#13105&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1370abed72e1fb93e601816d981fa6e46204afb&quot;&gt;&lt;code&gt;a1370ab&lt;/code&gt;&lt;/a&gt; Update: Report constructor calls in &lt;a href=&quot;https://eslint.org/docs/rules/no-obj-calls&quot;&gt;no-obj-calls&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12909&quot;&gt;#12909&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/085979fed9a5e24a87e4d92ee79272b59211d03f&quot;&gt;&lt;code&gt;085979f&lt;/code&gt;&lt;/a&gt; Update: consider env in &lt;a href=&quot;https://eslint.org/docs/rules/no-implied-eval&quot;&gt;no-implied-eval&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12733&quot;&gt;#12733&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12757&quot;&gt;#12757&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e90b29bb1f41d4e5767e33d03db5984f036586ed&quot;&gt;&lt;code&gt;e90b29b&lt;/code&gt;&lt;/a&gt; Update: Allow testing Suggestions with data in RuleTester (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12606&quot;&gt;#12606&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12635&quot;&gt;#12635&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/183e3006841c29efdd245c45a72e6cefac86ae35&quot;&gt;&lt;code&gt;183e300&lt;/code&gt;&lt;/a&gt; Update: support globalThis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12670&quot;&gt;#12670&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12774&quot;&gt;#12774&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12997058626b5167ba4b9d2ae0d0ea965a01c4be&quot;&gt;&lt;code&gt;1299705&lt;/code&gt;&lt;/a&gt; Update: acorn version (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13016&quot;&gt;#13016&lt;/a&gt;) (Idan Avrahami)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29f32db68c921a857e17ae627923d87b9c8708de&quot;&gt;&lt;code&gt;29f32db&lt;/code&gt;&lt;/a&gt; Fix: Change error message logic for implicit file ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12873&quot;&gt;#12873&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12878&quot;&gt;#12878&lt;/a&gt;) (Scott Hardin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb1a43ce3113c906800192c3ef766d2ff188776f&quot;&gt;&lt;code&gt;eb1a43c&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/require-await&quot;&gt;require-await&lt;/a&gt; ignore async generators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12459&quot;&gt;#12459&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13048&quot;&gt;#13048&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/920465b5d8d291df8bce7eef8a066b1dd43d8cae&quot;&gt;&lt;code&gt;920465b&lt;/code&gt;&lt;/a&gt; Fix: getNameLocationInGlobalDirectiveComment end location (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13086&quot;&gt;#13086&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae14a021bbea5117fe366ae4ed235e8f08dc65a8&quot;&gt;&lt;code&gt;ae14a02&lt;/code&gt;&lt;/a&gt; Fix: add end location to report in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-bind&quot;&gt;no-extra-bind&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13083&quot;&gt;#13083&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c20bc068e608869981a10711bba88ffde1539d8&quot;&gt;&lt;code&gt;0c20bc0&lt;/code&gt;&lt;/a&gt; Fix: check assignment property target in &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13025&quot;&gt;#13025&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13027&quot;&gt;#13027&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d50a7d82244d4912f3eab62a66c81c76c44a9da&quot;&gt;&lt;code&gt;8d50a7d&lt;/code&gt;&lt;/a&gt; Fix: add end location to report in &lt;a href=&quot;https://eslint.org/docs/rules/no-prototype-builtins&quot;&gt;no-prototype-builtins&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12334&quot;&gt;#12334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13087&quot;&gt;#13087&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e4e7f8d429dc70b78c0aefaa37f9c22a1e5fc0f&quot;&gt;&lt;code&gt;3e4e7f8&lt;/code&gt;&lt;/a&gt; Fix: incorrect logic for required parens in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;no-extra-boolean-cast&lt;/a&gt; fixer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13061&quot;&gt;#13061&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aef9488c07d3da4becff6e8d6918824b53086d86&quot;&gt;&lt;code&gt;aef9488&lt;/code&gt;&lt;/a&gt; Fix: allow references to external globals in &lt;a href=&quot;https://eslint.org/docs/rules/id-blacklist&quot;&gt;id-blacklist&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12567&quot;&gt;#12567&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12987&quot;&gt;#12987&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4955c50dc9e89b4077b28e35f065d45e89bdccd7&quot;&gt;&lt;code&gt;4955c50&lt;/code&gt;&lt;/a&gt; Fix: remove type arguments in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;prefer-object-spread&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13058&quot;&gt;#13058&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13063&quot;&gt;#13063&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dbe357de199620675446464f6fd0e35064c4d247&quot;&gt;&lt;code&gt;dbe357d&lt;/code&gt;&lt;/a&gt; Fix: check template literal in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-numeric-literals&quot;&gt;prefer-numeric-literals&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13045&quot;&gt;#13045&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13046&quot;&gt;#13046&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2260611e616bdc2a0bf16d508b60a50772ce7fbb&quot;&gt;&lt;code&gt;2260611&lt;/code&gt;&lt;/a&gt; Fix: added async in allow method in &lt;a href=&quot;https://eslint.org/docs/rules/no-empty-function&quot;&gt;no-empty-function&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12768&quot;&gt;#12768&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13036&quot;&gt;#13036&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7224eee3ff4b4378d3439deb038bf34b116fa48b&quot;&gt;&lt;code&gt;7224eee&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-plusplus&quot;&gt;no-plusplus&lt;/a&gt; allow comma operands in for afterthought (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13005&quot;&gt;#13005&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13024&quot;&gt;#13024&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7598cf816bd854de1dd7d96cf00dec6ecc4564ac&quot;&gt;&lt;code&gt;7598cf8&lt;/code&gt;&lt;/a&gt; Fix: Newline before eof when creating config via --init (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12952&quot;&gt;#12952&lt;/a&gt;) (Andreas Lind)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0243549db4d237cb78e720d55a9cae89b91f6830&quot;&gt;&lt;code&gt;0243549&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; false positive with computed property (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13022&quot;&gt;#13022&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13023&quot;&gt;#13023&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6cef0d50a0d131bc8897799a54e1af1d38606db4&quot;&gt;&lt;code&gt;6cef0d5&lt;/code&gt;&lt;/a&gt; Fix: Check division operator in astUtils.canTokensBeAdjacent (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12879&quot;&gt;#12879&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c069f907a04268b671c7f949c04a508df9d42a3&quot;&gt;&lt;code&gt;6c069f9&lt;/code&gt;&lt;/a&gt; Docs: Add comments to code block in example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13089&quot;&gt;#13089&lt;/a&gt;) (Kibeom Kwon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee1f0531aa534ef9182cf8586f55ad82aaa55e75&quot;&gt;&lt;code&gt;ee1f053&lt;/code&gt;&lt;/a&gt; Docs: Fix typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13092&quot;&gt;#13092&lt;/a&gt;) (Max Coplan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/76324ace67893c3d7e38a369114d6128df9ffb65&quot;&gt;&lt;code&gt;76324ac&lt;/code&gt;&lt;/a&gt; Docs: Add further reading to rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13084&quot;&gt;#13084&lt;/a&gt;) (Max Coplan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3f7c9bf19615122fb776cdd13da532d860bd945a&quot;&gt;&lt;code&gt;3f7c9bf&lt;/code&gt;&lt;/a&gt; Docs: clarify variables option in &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;no-use-before-define&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12986&quot;&gt;#12986&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13017&quot;&gt;#13017&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ac5b9edf06d16a9216c2c9b02bb20b6aa8ed0ab&quot;&gt;&lt;code&gt;9ac5b9e&lt;/code&gt;&lt;/a&gt; Docs: Clarify node_modules is ignored by default (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/13006&quot;&gt;#13006&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13054&quot;&gt;#13054&lt;/a&gt;) (Mika Kuijpers)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0de91f39a97cdf530cb64edbadde57a2bb41ca86&quot;&gt;&lt;code&gt;0de91f3&lt;/code&gt;&lt;/a&gt; Docs: removed correct code from incorrect eg (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13060&quot;&gt;#13060&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af7af9d32ea8073d2d0d726cc8551351261a170f&quot;&gt;&lt;code&gt;af7af9d&lt;/code&gt;&lt;/a&gt; Docs: Update governance (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13055&quot;&gt;#13055&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79ac6cd2d8e4c32e03dfea10a957806845058573&quot;&gt;&lt;code&gt;79ac6cd&lt;/code&gt;&lt;/a&gt; Docs: added less confusing explanation for &lt;a href=&quot;https://eslint.org/docs/rules/func-style&quot;&gt;func-style&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12900&quot;&gt;#12900&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13004&quot;&gt;#13004&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2111c52443e7641caad291e0daaea8e2fe6c4562&quot;&gt;&lt;code&gt;2111c52&lt;/code&gt;&lt;/a&gt; Upgrade: esquery@1.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13076&quot;&gt;#13076&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95613d46b7900b3d9757a7f6959d5dfb262f29fc&quot;&gt;&lt;code&gt;95613d4&lt;/code&gt;&lt;/a&gt; Upgrade: espree@6.2.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13026&quot;&gt;#13026&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bc0c02cd0368559c7a7b1510eb4620022a4cc31c&quot;&gt;&lt;code&gt;bc0c02c&lt;/code&gt;&lt;/a&gt; Chore: added lock files to gitignore (&lt;a href=&quot;https://github.com/eslint/eslint/issues/13015&quot;&gt;#13015&lt;/a&gt;) (Anix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26267ed70270ef746b785c09e267f815bf7c596a&quot;&gt;&lt;code&gt;26267ed&lt;/code&gt;&lt;/a&gt; Chore: update GitHub Actions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12984&quot;&gt;#12984&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/472025f2814d0360fe8d4cddbcba049982e1cd43&quot;&gt;&lt;code&gt;472025f&lt;/code&gt;&lt;/a&gt; Chore: update &lt;a href=&quot;https://eslint.org/docs/rules/space-before-function-paren&quot;&gt;space-before-function-paren&lt;/a&gt; in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12966&quot;&gt;#12966&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.0.0-alpha.2 released</title>
    <link href="https://eslint.org/blog/2020/02/eslint-v7.0.0-alpha.2-released/"/>
    <updated>2020-02-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/02/eslint-v7.0.0-alpha.2-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This release contains the following breaking changes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Updating default configuration options in core rules.&lt;/li&gt;
&lt;li&gt;Updating the rules recommended in &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#using-eslint-recommended&quot;&gt;&lt;code&gt;eslint:recommended&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Making &lt;a href=&quot;https://eslint.org/blog/2020/02/whats-coming-in-eslint-7.0.0#stricter-ruletester&quot;&gt;RuleTester&lt;/a&gt; checks stricter.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@7.0.0-alpha.2 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://github.com/eslint/eslint/pull/12692&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4af06fc49029dac5c9acfd53f01fd9527bfbb4aa&quot;&gt;&lt;code&gt;4af06fc&lt;/code&gt;&lt;/a&gt; Breaking: Test with an unknown error property should fail in RuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12096&quot;&gt;#12096&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afa9aac6de9444e935a55b46311e5b5a58f86063&quot;&gt;&lt;code&gt;afa9aac&lt;/code&gt;&lt;/a&gt; Breaking: class default &lt;code&gt;true&lt;/code&gt; &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;computed-property-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12812&quot;&gt;#12812&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12915&quot;&gt;#12915&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d52151bcd5d5524f240588436a8808162be187f&quot;&gt;&lt;code&gt;7d52151&lt;/code&gt;&lt;/a&gt; Breaking: classes default &lt;code&gt;true&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/accessor-pairs&quot;&gt;accessor-pairs&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12811&quot;&gt;#12811&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12919&quot;&gt;#12919&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78182e45e0178d9eac2591944ef4daee21d2cb44&quot;&gt;&lt;code&gt;78182e4&lt;/code&gt;&lt;/a&gt; Breaking: Add new rules to eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12911&quot;&gt;#12911&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12920&quot;&gt;#12920&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6423e11c0bedd3b4e661ab554316bdeb1fc1ee3c&quot;&gt;&lt;code&gt;6423e11&lt;/code&gt;&lt;/a&gt; Breaking: check unnamed default export in &lt;a href=&quot;https://eslint.org/docs/rules/func-names&quot;&gt;func-names&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12194&quot;&gt;#12194&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12195&quot;&gt;#12195&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a5b41a75b57572e97476b06ad39b768e15b9d844&quot;&gt;&lt;code&gt;a5b41a7&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-modules&quot;&gt;no-restricted-modules&lt;/a&gt; handle TemplateLiteral (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12926&quot;&gt;#12926&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12927&quot;&gt;#12927&lt;/a&gt;) (Michal Piechowiak)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/051567adca7ca56d691bcda76f54ed72e3eae367&quot;&gt;&lt;code&gt;051567a&lt;/code&gt;&lt;/a&gt; Update: check identifier in array pattern in &lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;id-length&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12832&quot;&gt;#12832&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12839&quot;&gt;#12839&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9038a29569548c0563c29dbe9f7dae280ff3addd&quot;&gt;&lt;code&gt;9038a29&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/func-names&quot;&gt;func-names&lt;/a&gt; &lt;code&gt;as-needed&lt;/code&gt; false negative with AssignmentPattern (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12932&quot;&gt;#12932&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7747177f8504961059b7c56bdb70a820bd1114c1&quot;&gt;&lt;code&gt;7747177&lt;/code&gt;&lt;/a&gt; Update: report rename id destructuring in &lt;a href=&quot;https://eslint.org/docs/rules/id-blacklist&quot;&gt;id-blacklist&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12807&quot;&gt;#12807&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12923&quot;&gt;#12923&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/77df505d9a08496a8eaefeca4f885f54a21d5c5e&quot;&gt;&lt;code&gt;77df505&lt;/code&gt;&lt;/a&gt; Update: check renaming identifier in object destructuring (fixes 12827) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12881&quot;&gt;#12881&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41de9df41a30a4300243bfe4ca26f716a787b2fc&quot;&gt;&lt;code&gt;41de9df&lt;/code&gt;&lt;/a&gt; Update: enforceForLogicalOperands &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;no-extra-boolean-cast&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12137&quot;&gt;#12137&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12734&quot;&gt;#12734&lt;/a&gt;) (jmoore914)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afde78b125747ce5ad9e5f871122a0d370dd0152&quot;&gt;&lt;code&gt;afde78b&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;curly&lt;/a&gt; removes necessary braces between if and else (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12928&quot;&gt;#12928&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12943&quot;&gt;#12943&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4797fb2c29db97bc5cd23b40e5a9235fef1ea06a&quot;&gt;&lt;code&gt;4797fb2&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/arrow-body-style&quot;&gt;arrow-body-style&lt;/a&gt; crash with object literal body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12884&quot;&gt;#12884&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12886&quot;&gt;#12886&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de14d1ce0cf422b4100a686abb906f53fbf905b3&quot;&gt;&lt;code&gt;de14d1c&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/wrap-iife&quot;&gt;wrap-iife&lt;/a&gt; autofix removes mandatory parentheses (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12905&quot;&gt;#12905&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5775b06a74573cbe068bea56b1d2376421f5e831&quot;&gt;&lt;code&gt;5775b06&lt;/code&gt;&lt;/a&gt; Fix: Optionally allow underscores in member names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11972&quot;&gt;#11972&lt;/a&gt;) (Edgardo Avilés)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0dfc3ff9fb228e1d9b1df99de50033ce9140ac24&quot;&gt;&lt;code&gt;0dfc3ff&lt;/code&gt;&lt;/a&gt; Fix: add end location to report in &lt;a href=&quot;https://eslint.org/docs/rules/no-eval&quot;&gt;no-eval&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12960&quot;&gt;#12960&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8e20d33b7d6645266beef09cd231afaf5054328&quot;&gt;&lt;code&gt;b8e20d3&lt;/code&gt;&lt;/a&gt; Docs: Mention TypeScript’s compiler check (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12903&quot;&gt;#12903&lt;/a&gt;) (Benny Neugebauer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e997f32b936463ac38e8b0034f764c47502e56a8&quot;&gt;&lt;code&gt;e997f32&lt;/code&gt;&lt;/a&gt; Docs: Updated &lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;arrow-parens&lt;/a&gt; for minor grammar issue (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12962&quot;&gt;#12962&lt;/a&gt;) (Tom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf14355e34a6757e15806f8e493553bd7110fb36&quot;&gt;&lt;code&gt;cf14355&lt;/code&gt;&lt;/a&gt; Docs: Fix links to custom parsers doc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12965&quot;&gt;#12965&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f479f6fe2eb95156e22bebfccb39a7fc1f19e9c0&quot;&gt;&lt;code&gt;f479f6f&lt;/code&gt;&lt;/a&gt; Docs: References correct config file name (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12885&quot;&gt;#12885&lt;/a&gt;) (Patrick Kilgore)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d5c434f721142be74c7515aaa935668a15b79b1&quot;&gt;&lt;code&gt;8d5c434&lt;/code&gt;&lt;/a&gt; Docs: fix category descriptions for site generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12894&quot;&gt;#12894&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12930&quot;&gt;#12930&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05380e6e7e19a79d26ea6d6b44a8d5ee7cde51c8&quot;&gt;&lt;code&gt;05380e6&lt;/code&gt;&lt;/a&gt; Docs: Remove claim about semicolons from docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12944&quot;&gt;#12944&lt;/a&gt;) (Luke Sikina)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>What&#39;s coming in ESLint v7.0.0</title>
    <link href="https://eslint.org/blog/2020/02/whats-coming-in-eslint-7.0.0/"/>
    <updated>2020-02-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/02/whats-coming-in-eslint-7.0.0/</id>
    <content type="html">&lt;p&gt;Last week, the Technical Steering Committee (TSC) met to finalize the features for ESLint v7.0.0. This feature set had not yet been locked down even as v7.0.0 work began and so this represented an important milestone that allows us to focus on getting this next major release shipped. You can see everything that is planned for v7.0.0 on our &lt;a href=&quot;https://github.com/eslint/eslint/projects/6&quot;&gt;project board&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;significant-changes-in-v7.0.0&quot; tabindex=&quot;-1&quot;&gt;Significant changes in v7.0.0&lt;/h2&gt;
&lt;p&gt;The following changes are important to understand as we move towards v7.0.0.&lt;/p&gt;
&lt;h3 id=&quot;dropping-support-for-node.js-v8.x&quot; tabindex=&quot;-1&quot;&gt;Dropping support for Node.js v8.x&lt;/h3&gt;
&lt;p&gt;Node.js v8.x was officially end-of-lifed in December 2019 and so v7.0.0 removes support for this version of Node.js.&lt;/p&gt;
&lt;h3 id=&quot;eslint-class-replacing-cliengine-class&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;ESLint&lt;/code&gt; class replacing &lt;code&gt;CLIEngine&lt;/code&gt; class&lt;/h3&gt;
&lt;p&gt;From ESLint’s early days, we have provided a &lt;code&gt;CLIEngine&lt;/code&gt; class to allow developers to create ESLint integrations. This class is at the center of things like editor plugins, build tool integrations, and zero-configuration linters. The &lt;code&gt;CLIEngine&lt;/code&gt; class powers ESLint itself and has been an important part of the project for many years.&lt;/p&gt;
&lt;p&gt;Unfortunately, the &lt;code&gt;CLIEngine&lt;/code&gt; has become the major blocker for many new features. Most significantly, because the &lt;code&gt;CLIEngine&lt;/code&gt; class works synchronously, it was impossible to do any type of asynchronous operation in the core of ESLint. That limitation meant that features such as parallel linting of files and loading ECMAScript module (ESM) files were impossible to implement.&lt;/p&gt;
&lt;p&gt;Several approaches were considered before we decided to replace the &lt;code&gt;CLIEngine&lt;/code&gt; class with the new &lt;code&gt;ESLint&lt;/code&gt; class (&lt;a href=&quot;https://github.com/eslint/rfcs/pull/40&quot;&gt;more details&lt;/a&gt;). The &lt;code&gt;ESLint&lt;/code&gt; class will contain asynchronous methods that will serve as a jumping off point to introducing asynchronous functionality into the core. To begin, the &lt;code&gt;ESLint&lt;/code&gt; class will just be a wrapper around &lt;code&gt;CLIEngine&lt;/code&gt; and we will systematically start writing new functionality into the &lt;code&gt;ESLint&lt;/code&gt; class over time. Eventually, the &lt;code&gt;ESLint&lt;/code&gt; and &lt;code&gt;CLIEngine&lt;/code&gt; classes will be completely separate.&lt;/p&gt;
&lt;p&gt;For v7.0.0, the &lt;code&gt;CLIEngine&lt;/code&gt; class will be deprecated but not removed. We expect to remove &lt;code&gt;CLIEngine&lt;/code&gt; in a future major release (don’t worry, we’ll give you plenty of notice before doing that).&lt;/p&gt;
&lt;h3 id=&quot;deprecating-node.js%2Fcommonjs-specific-rules&quot; tabindex=&quot;-1&quot;&gt;Deprecating Node.js/CommonJS-specific rules&lt;/h3&gt;
&lt;p&gt;Managing rules in the core is a significant part of ongoing ESLint maintenance. As the project has grown, so has the number of rules we’ve maintained. We reviewed all of the current rules and decided that the Node.js/CommonJS-specific rules aren’t something that makes sense to include in the core going forward. This is especially true as Node.js moves more towards ESM as the preferred module system.&lt;/p&gt;
&lt;p&gt;As such, the following rules will be deprecated in the core:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;callback-return&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;global-require&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;handle-callback-err&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-buffer-constructor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-mixed-requires&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-new-require&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-path-concat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-process-env&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-process-exit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-restricted-modules&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These rules will be moved to the &lt;a href=&quot;https://github.com/mysticatea/eslint-plugin-node&quot;&gt;&lt;code&gt;eslint-plugin-node&lt;/code&gt;&lt;/a&gt; project. We will be recommending that people use the plugin for these rules going forward. The rules will remain in ESLint for v7.0.0 and will be removed in a future major release.&lt;/p&gt;
&lt;h3 id=&quot;descriptions-in-directive-comments&quot; tabindex=&quot;-1&quot;&gt;Descriptions in directive comments&lt;/h3&gt;
&lt;p&gt;Directive comment descriptions allow you to leave a note to yourself and other developers as to why you included the comment. For example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* eslint-disable no-new -- this class has a side-effect in the constructor. */&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can read more in the &lt;a href=&quot;https://github.com/eslint/rfcs/pull/33&quot;&gt;RFC&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;warnings-for-using-~%2F.eslintrc&quot; tabindex=&quot;-1&quot;&gt;Warnings for using &lt;code&gt;~/.eslintrc&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Config files in your home directory were deprecated in v6.7.0 and v7.0.0 will warn when one is used. This feature has long been a source of confusion for ESLint users, especially because ESLint only looks for a config file in the home directory if no other config file is found. The configuration system in ESLint has changed a lot since home directory config files were introduced, and with the additional flexibility we feel there are plenty of other options for configuring ESLint that are clearer than the home directory config file.&lt;/p&gt;
&lt;p&gt;Support for home directory config files will be removed in v8.0.0. You can read more in the &lt;a href=&quot;https://github.com/eslint/rfcs/pull/32&quot;&gt;RFC&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;updating-the-base-path-when-using---config-or---ignore-path&quot; tabindex=&quot;-1&quot;&gt;Updating the base path when using &lt;code&gt;--config&lt;/code&gt; or &lt;code&gt;--ignore-path&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;In versions prior to v7.0.0, ESLint would resolve references inside of config files or ignore files relative to the file location passed to &lt;code&gt;--config&lt;/code&gt; or &lt;code&gt;--ignore-path&lt;/code&gt;. This didn’t make much sense and was a source of confusion and unexpected behaviors for users. In v7.0.0, config files and ignore files passed using &lt;code&gt;--config&lt;/code&gt; or &lt;code&gt;--ignore-path&lt;/code&gt; use the current working directory as their base path. You can read more in the &lt;a href=&quot;https://github.com/eslint/rfcs/pull/37&quot;&gt;RFC&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;plugins-loaded-from-config-file-directory&quot; tabindex=&quot;-1&quot;&gt;Plugins loaded from config file directory&lt;/h3&gt;
&lt;p&gt;In v7.0.0, plugins will be loaded relative to the configs that reference them. You can read more in the &lt;a href=&quot;https://github.com/eslint/rfcs/pull/47&quot;&gt;RFC&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;file-extensions-in-config-files&quot; tabindex=&quot;-1&quot;&gt;File extensions in config files&lt;/h3&gt;
&lt;p&gt;ESLint v7.0.0 now reads the glob patterns in the &lt;code&gt;overrides&lt;/code&gt; section of your config to determine which files to lint. Prior to v7.0.0, you would need to provide the &lt;code&gt;--ext&lt;/code&gt; command line flag to specify the additional files to lint. You can read more in the &lt;a href=&quot;https://github.com/eslint/rfcs/pull/20&quot;&gt;RFC&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;updated-default-ignore-patterns&quot; tabindex=&quot;-1&quot;&gt;Updated default ignore patterns&lt;/h3&gt;
&lt;p&gt;In addition to the current defaults, the default ignore patterns for ESLint will be changed to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;unignore &lt;code&gt;.eslintrc.js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;unignore &lt;code&gt;/bower_components/*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ignore &lt;code&gt;node_modules/*&lt;/code&gt; in subdirectories&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can read more in the &lt;a href=&quot;https://github.com/eslint/rfcs/pull/51&quot;&gt;RFC&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;stricter-ruletester&quot; tabindex=&quot;-1&quot;&gt;Stricter &lt;code&gt;RuleTester&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;RuleTester&lt;/code&gt; class is adding several additional checks to ensure rules are working properly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fails if a rule uses the nonstandard &lt;code&gt;node.start&lt;/code&gt; or &lt;code&gt;node.end&lt;/code&gt; properties, which may not be provided by all parsers that ESLint supports.&lt;/li&gt;
&lt;li&gt;Autofix rules must test the output of their fixes.&lt;/li&gt;
&lt;li&gt;Tests where the code has a syntax error will now fail.&lt;/li&gt;
&lt;li&gt;Tests fail if the test specification contains unknown properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can read more in the &lt;a href=&quot;https://github.com/eslint/rfcs/pull/25&quot;&gt;RFC&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;installing-preview-releases-of-v7.0.0&quot; tabindex=&quot;-1&quot;&gt;Installing preview releases of v7.0.0&lt;/h2&gt;
&lt;p&gt;If you’d like to test v7.0.0 as it’s developed, you can install from npm using the &lt;code&gt;next&lt;/code&gt; tag:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Preview releases are published to the &lt;code&gt;next&lt;/code&gt; tag periodically until the final v7.0.0 release. Keep in mind that preview releases do not contain all of the changes planned for v7.0.0 and are designed primarily to help us discover bugs and problems upgrading from v6.x.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.0.0-alpha.1 released</title>
    <link href="https://eslint.org/blog/2020/02/eslint-v7.0.0-alpha.1-released/"/>
    <updated>2020-02-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/02/eslint-v7.0.0-alpha.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Most of the highlights of this release are breaking changes, and are discussed further in the &lt;a href=&quot;https://github.com/eslint/eslint/pull/12692&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@7.0.0-alpha.1 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://github.com/eslint/eslint/pull/12692&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4293229709dde105692347241513766e953664dd&quot;&gt;&lt;code&gt;4293229&lt;/code&gt;&lt;/a&gt; Breaking: &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;use-isnan&lt;/a&gt; enforceForSwitchCase default &lt;code&gt;true&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12810&quot;&gt;#12810&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12913&quot;&gt;#12913&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf38d0d939b62f3670cdd59f0143fd896fccd771&quot;&gt;&lt;code&gt;cf38d0d&lt;/code&gt;&lt;/a&gt; Breaking: change default ignore pattern (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/51&quot;&gt;eslint/rfcs#51&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12888&quot;&gt;#12888&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfe1dc4e614640cb69032afbb5851c1493f537e3&quot;&gt;&lt;code&gt;bfe1dc4&lt;/code&gt;&lt;/a&gt; Breaking: &lt;a href=&quot;https://eslint.org/docs/rules/no-dupe-class-members&quot;&gt;no-dupe-class-members&lt;/a&gt; checks some computed keys (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12808&quot;&gt;#12808&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12837&quot;&gt;#12837&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2217c04d6c82b160a21b00fca39c8acec543403&quot;&gt;&lt;code&gt;c2217c0&lt;/code&gt;&lt;/a&gt; Breaking: make &lt;a href=&quot;https://eslint.org/docs/rules/radix&quot;&gt;&lt;code&gt;radix&lt;/code&gt;&lt;/a&gt; rule stricter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12608&quot;&gt;#12608&lt;/a&gt;) (fisker Cheung)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ee6b6388305a8671c8d4c3cf30c2dbf18a1ff7e&quot;&gt;&lt;code&gt;1ee6b63&lt;/code&gt;&lt;/a&gt; Update: check template literal in &lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;yoda&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12863&quot;&gt;#12863&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12876&quot;&gt;#12876&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/439c83342c364ba3ce5168d54e165b1fe3e35630&quot;&gt;&lt;code&gt;439c833&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; checks Array.forEach (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12551&quot;&gt;#12551&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12646&quot;&gt;#12646&lt;/a&gt;) (Gabriel R Sezefredo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03a69dbe86d5b5768a310105416ae726822e3c1c&quot;&gt;&lt;code&gt;03a69db&lt;/code&gt;&lt;/a&gt; Update: check template literal in &lt;a href=&quot;https://eslint.org/docs/rules/no-proto&quot;&gt;no-proto&lt;/a&gt;, &lt;a href=&quot;https://eslint.org/docs/rules/no-iterator&quot;&gt;no-iterator&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12801&quot;&gt;#12801&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12806&quot;&gt;#12806&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/562e7845946a490f2e173a0bcd1af631070a4eef&quot;&gt;&lt;code&gt;562e784&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-magic-numbers&quot;&gt;no-magic-numbers&lt;/a&gt; false negative with ignoreArrayIndexes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12805&quot;&gt;#12805&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0460748cda67ddc4a4cb0db3cdf187a742d09bf8&quot;&gt;&lt;code&gt;0460748&lt;/code&gt;&lt;/a&gt; Update: check template literal in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12815&quot;&gt;#12815&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12816&quot;&gt;#12816&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f1424cb200e609d58645f6c54739e11469e6265&quot;&gt;&lt;code&gt;1f1424c&lt;/code&gt;&lt;/a&gt; Fix: fix inconsistently works option in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12717&quot;&gt;#12717&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12843&quot;&gt;#12843&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b5adcaab93f388f1d8e9d35d6f5e8c2994240850&quot;&gt;&lt;code&gt;b5adcaa&lt;/code&gt;&lt;/a&gt; Fix: make YieldExpression throwable (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12880&quot;&gt;#12880&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12897&quot;&gt;#12897&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95e0586c95e6953d11983d1d11891ed30318109a&quot;&gt;&lt;code&gt;95e0586&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/id-blacklist&quot;&gt;id-blacklist&lt;/a&gt; false positives on renamed imports (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12831&quot;&gt;#12831&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dadc8927820576c60b48bcbc7d5a9056a6279d30&quot;&gt;&lt;code&gt;dadc892&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;operator-assignment&lt;/a&gt; crash on adjacent division assignment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12844&quot;&gt;#12844&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9d92f991d69902a9150db373590e2ed54dec988&quot;&gt;&lt;code&gt;a9d92f9&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/radix&quot;&gt;radix&lt;/a&gt; rule crash on disabled globals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12824&quot;&gt;#12824&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/533c1140dc98bebdc3ae8334ab2e6c27c7df0c21&quot;&gt;&lt;code&gt;533c114&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; rule add extra space after * (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12785&quot;&gt;#12785&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12823&quot;&gt;#12823&lt;/a&gt;) (Karthik Priyadarshan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/80309c3791188ac5d1c4eebc99ede323a55336e6&quot;&gt;&lt;code&gt;80309c3&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; doesn’t introspect arrays (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12225&quot;&gt;#12225&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12307&quot;&gt;#12307&lt;/a&gt;) (Sean Gray)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f702b1a54820d2b4e4993dcded99f551a98b490f&quot;&gt;&lt;code&gt;f702b1a&lt;/code&gt;&lt;/a&gt; Docs: Add missing plugin reference (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12796&quot;&gt;#12796&lt;/a&gt;) (Eduard Bardají Puig)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/824d23585c205f2993716585cb6f55dfbe4a33f0&quot;&gt;&lt;code&gt;824d235&lt;/code&gt;&lt;/a&gt; Docs: add errorOnUnmatchedPattern option to CLIEngine (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12834&quot;&gt;#12834&lt;/a&gt;) (Arthur Denner)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/33efd71d7c3496b4b9cbfe006280527064940826&quot;&gt;&lt;code&gt;33efd71&lt;/code&gt;&lt;/a&gt; Docs: Fix spelling mistakes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12861&quot;&gt;#12861&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a5b3c5fa4edc2312534af0d9f0911f68144f8baf&quot;&gt;&lt;code&gt;a5b3c5f&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6c313de794ea0671d35b5027288cd2ea456c0b5&quot;&gt;&lt;code&gt;d6c313d&lt;/code&gt;&lt;/a&gt; Docs: add missing eslint comments in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-regex-literals&quot;&gt;prefer-regex-literals&lt;/a&gt; examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12858&quot;&gt;#12858&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aea172998ec4e2af1d9186b6767c3f34428945f4&quot;&gt;&lt;code&gt;aea1729&lt;/code&gt;&lt;/a&gt; Docs: Fix anchor links in Node.js API TOC (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12821&quot;&gt;#12821&lt;/a&gt;) (Matija Marohnić)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1907e57362f7d5f7a02a5a78f24ac3347f868e93&quot;&gt;&lt;code&gt;1907e57&lt;/code&gt;&lt;/a&gt; Chore: add Twitter and Open Collective badge (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12877&quot;&gt;#12877&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7f0d200c125b3d233ccafaabdaa61c66dc60e3c&quot;&gt;&lt;code&gt;b7f0d20&lt;/code&gt;&lt;/a&gt; Chore: Use consistent badge style (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12825&quot;&gt;#12825&lt;/a&gt;) (fisker Cheung)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3734a669983de7d5107ba8f39b291c6e3116489f&quot;&gt;&lt;code&gt;3734a66&lt;/code&gt;&lt;/a&gt; Chore: use ids for messages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12859&quot;&gt;#12859&lt;/a&gt;) (Gareth Jones)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0cae9203a8077184ad6beb00028fd376cc806f34&quot;&gt;&lt;code&gt;0cae920&lt;/code&gt;&lt;/a&gt; Chore: rename shadowed global (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12862&quot;&gt;#12862&lt;/a&gt;) (Tony Brix)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/055b80dc89bba2a5ab22f7a27deb40135b5cacfa&quot;&gt;&lt;code&gt;055b80d&lt;/code&gt;&lt;/a&gt; Chore: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;complexity&lt;/a&gt;.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12864&quot;&gt;#12864&lt;/a&gt;) (Kyle Shevlin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f39ef0d4b398c7c09ceef89128da448680d587c&quot;&gt;&lt;code&gt;9f39ef0&lt;/code&gt;&lt;/a&gt; Chore: typo in PULL_REQUEST_TEMPLATE.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12848&quot;&gt;#12848&lt;/a&gt;) (Balázs Orbán)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a60d5cd2325ca72fa1b272b0b90ccd7904b92062&quot;&gt;&lt;code&gt;a60d5cd&lt;/code&gt;&lt;/a&gt; Chore: typo in &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt;.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12847&quot;&gt;#12847&lt;/a&gt;) (Balázs Orbán)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/691d19a2872bffab50c0024d488b8cb33504cc83&quot;&gt;&lt;code&gt;691d19a&lt;/code&gt;&lt;/a&gt; Chore: add missing &lt;code&gt;ecmaVersion&lt;/code&gt; 2020/11 type value (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12833&quot;&gt;#12833&lt;/a&gt;) (Piotr Błażejewicz (Peter Blazejewicz))&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5b96564f732962f46755adbb33c49fae9af6a92&quot;&gt;&lt;code&gt;f5b9656&lt;/code&gt;&lt;/a&gt; Chore: add test for &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12836&quot;&gt;#12836&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10a79a672b42d51539bcd6ace482be7afa5f34f8&quot;&gt;&lt;code&gt;10a79a6&lt;/code&gt;&lt;/a&gt; Chore: Adopt &lt;code&gt;eslint-plugin/require-meta-docs-description&lt;/code&gt; internally (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12762&quot;&gt;#12762&lt;/a&gt;) (Bryan Mishkin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v7.0.0-alpha.0 released</title>
    <link href="https://eslint.org/blog/2020/01/eslint-v7.0.0-alpha.0-released/"/>
    <updated>2020-01-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2020/01/eslint-v7.0.0-alpha.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Most of the highlights of this release are breaking changes, and are discussed further in the &lt;a href=&quot;https://github.com/eslint/eslint/pull/12692&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In addition to the breaking changes, we have three new rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/7.0.0/rules/default-case-last&quot;&gt;default-case-last&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/7.0.0/rules/no-useless-backreference&quot;&gt;no-useless-backreference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/7.0.0/rules/no-restricted-exports&quot;&gt;no-restricted-exports&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@7.0.0-alpha.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’re working on a &lt;a href=&quot;https://github.com/eslint/eslint/pull/12692&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1aa021d77fdd2c68d7b7d2f4603252110c414b32&quot;&gt;&lt;code&gt;1aa021d&lt;/code&gt;&lt;/a&gt; Breaking: lint &lt;code&gt;overrides&lt;/code&gt; files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10828&quot;&gt;#10828&lt;/a&gt;, refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/20&quot;&gt;eslint/rfcs#20&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12677&quot;&gt;#12677&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b50179def3fedbd95fdeab25e32c2511867eb760&quot;&gt;&lt;code&gt;b50179d&lt;/code&gt;&lt;/a&gt; Breaking: Check assignment targets in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12490&quot;&gt;#12490&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d86a5bbb1987d858d4963f647b0af5c1fd924b4f&quot;&gt;&lt;code&gt;d86a5bb&lt;/code&gt;&lt;/a&gt; Breaking: Check flatMap in &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12235&quot;&gt;#12235&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12765&quot;&gt;#12765&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf46df70158a4ed4c09d5c9d655c07dc6df3ff5e&quot;&gt;&lt;code&gt;cf46df7&lt;/code&gt;&lt;/a&gt; Breaking: description in directive comments (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/33&quot;&gt;eslint/rfcs#33&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12699&quot;&gt;#12699&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7350589a5bdfc9d75d1ff19364f476eec44c3911&quot;&gt;&lt;code&gt;7350589&lt;/code&gt;&lt;/a&gt; Breaking: some rules recognize bigint literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11803&quot;&gt;#11803&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12701&quot;&gt;#12701&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1118fceb49af3436b8dcd0c6089f913cedf9a329&quot;&gt;&lt;code&gt;1118fce&lt;/code&gt;&lt;/a&gt; Breaking: runtime-deprecation on ‘~/.eslintrc’ (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/32&quot;&gt;eslint/rfcs#32&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12678&quot;&gt;#12678&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c28fbbb563a44282bef0c9fcc9be29d611cc83b&quot;&gt;&lt;code&gt;2c28fbb&lt;/code&gt;&lt;/a&gt; Breaking: drop Node.js 8 support (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/44&quot;&gt;eslint/rfcs#44&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12700&quot;&gt;#12700&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9774ec11b0ebe63fb16a97b97890efb84699548&quot;&gt;&lt;code&gt;f9774ec&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/default-case-last&quot;&gt;default-case-last&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12665&quot;&gt;#12665&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12668&quot;&gt;#12668&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1d999c6b4e51c317ad409110be7be214ff9f7c6&quot;&gt;&lt;code&gt;a1d999c&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-backreference&quot;&gt;no-useless-backreference&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12673&quot;&gt;#12673&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12690&quot;&gt;#12690&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/985dac35e3c367f0f99d1f0e766e06a1d9818dd4&quot;&gt;&lt;code&gt;985dac3&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-exports&quot;&gt;no-restricted-exports&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10428&quot;&gt;#10428&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12546&quot;&gt;#12546&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e59d77536bd8db57e8a75cd5245f6f320aa699f8&quot;&gt;&lt;code&gt;e59d775&lt;/code&gt;&lt;/a&gt; Update: Separate pattern/expression options for &lt;a href=&quot;https://eslint.org/docs/rules/array-element-newline&quot;&gt;array-element-newline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11796&quot;&gt;#11796&lt;/a&gt;) (jacobparish)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8f115af6e10539e6cad485588187cb11917f8c9&quot;&gt;&lt;code&gt;f8f115a&lt;/code&gt;&lt;/a&gt; Update: treat comment tokens in &lt;a href=&quot;https://eslint.org/docs/rules/template-curly-spacing&quot;&gt;template-curly-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12744&quot;&gt;#12744&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12775&quot;&gt;#12775&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a93d9ef389c49a133c4df4f9843927f5f806423&quot;&gt;&lt;code&gt;9a93d9e&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; export * false negative (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12737&quot;&gt;#12737&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12798&quot;&gt;#12798&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68becbd84e8a0693409d36f2be10679c483e233a&quot;&gt;&lt;code&gt;68becbd&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; importNames reporting (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12282&quot;&gt;#12282&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12711&quot;&gt;#12711&lt;/a&gt;) (Andrey Alexandrov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae959b691fb148ac8b474c924c8cb01ef61c436d&quot;&gt;&lt;code&gt;ae959b6&lt;/code&gt;&lt;/a&gt; Update: report double extra parens in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12127&quot;&gt;#12127&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12697&quot;&gt;#12697&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b2c62096a8b318765d618cab222240f87d73063b&quot;&gt;&lt;code&gt;b2c6209&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; CallExpression#callee false negatives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12743&quot;&gt;#12743&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14b42c386be3387c415267b789f277e1294d4567&quot;&gt;&lt;code&gt;14b42c3&lt;/code&gt;&lt;/a&gt; Update: fix counting jsx comment len in &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12213&quot;&gt;#12213&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12661&quot;&gt;#12661&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/313f70ac9a3cf5d1558d2427b00dd75666e18cf4&quot;&gt;&lt;code&gt;313f70a&lt;/code&gt;&lt;/a&gt; Update: add outerIIFEBody: “off” to &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11377&quot;&gt;#11377&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12706&quot;&gt;#12706&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fa39a633b37544fec7cedfc1f2b0e62e9312a72&quot;&gt;&lt;code&gt;3fa39a6&lt;/code&gt;&lt;/a&gt; Update: Handle locally unsupported regex in computed property keys (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12056&quot;&gt;#12056&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f1020ff711b0c57d590bf666e2841f64186d083&quot;&gt;&lt;code&gt;8f1020f&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-void&quot;&gt;no-void&lt;/a&gt; add an option to allow void as a statement (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12613&quot;&gt;#12613&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb6cf5082623ffb67bb1495fee52c0610ee5f421&quot;&gt;&lt;code&gt;bb6cf50&lt;/code&gt;&lt;/a&gt; Update: Add offsetTernaryExpressions option for &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12556&quot;&gt;#12556&lt;/a&gt;) (Adam Stankiewicz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de4fa7c65c7befefa64d1605550267071ee56a5d&quot;&gt;&lt;code&gt;de4fa7c&lt;/code&gt;&lt;/a&gt; Fix: wrong &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; at tagged template in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12122&quot;&gt;#12122&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12596&quot;&gt;#12596&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16a1c1f79bc0a4cc1c3a87e98d220041de88bb93&quot;&gt;&lt;code&gt;16a1c1f&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;prefer-object-spread&lt;/a&gt; false positives with accessors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12086&quot;&gt;#12086&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12784&quot;&gt;#12784&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d8c0affe1ae7ecf228cdf91b490921f7e9d1fdb&quot;&gt;&lt;code&gt;0d8c0af&lt;/code&gt;&lt;/a&gt; Fix: improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;computed-property-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12795&quot;&gt;#12795&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/756b95d59fb97cd9b3f3adf98cebf529fe4842a2&quot;&gt;&lt;code&gt;756b95d&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/id-blacklist&quot;&gt;id-blacklist&lt;/a&gt; should ignore ObjectPatterns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12787&quot;&gt;#12787&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12792&quot;&gt;#12792&lt;/a&gt;) (JP Ramassini)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/01ff7910af86fc45b76e883bc9ab00c9be3b50ac&quot;&gt;&lt;code&gt;01ff791&lt;/code&gt;&lt;/a&gt; Fix: Display pipe character correctly in test output (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12771&quot;&gt;#12771&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/00ddfffe6b4b4244e4680b0f92f2c6697fad136f&quot;&gt;&lt;code&gt;00ddfff&lt;/code&gt;&lt;/a&gt; Fix: Windows path parsing for JUnit (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12507&quot;&gt;#12507&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12509&quot;&gt;#12509&lt;/a&gt;) (Michael Wall)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1aff21bb54da44cef0b6e378a34a74265863b930&quot;&gt;&lt;code&gt;1aff21b&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-spaces-and-tabs&quot;&gt;no-mixed-spaces-and-tabs&lt;/a&gt; reports multiline strings (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12566&quot;&gt;#12566&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02fcc055710e8d69d986f1e682cae2014ad881e2&quot;&gt;&lt;code&gt;02fcc05&lt;/code&gt;&lt;/a&gt; Docs: Improve &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;sort-keys&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12791&quot;&gt;#12791&lt;/a&gt;) (Steven Vachon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25eb703c8758563988ffb497a53f89a3ed345399&quot;&gt;&lt;code&gt;25eb703&lt;/code&gt;&lt;/a&gt; Docs: fix dead link in &lt;a href=&quot;https://eslint.org/docs/rules/max-lines&quot;&gt;max-lines&lt;/a&gt; rule docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12766&quot;&gt;#12766&lt;/a&gt;) (Christian Bundy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/098b67d04a4b4dc8ef4faa6434c6ef5abbde3ed3&quot;&gt;&lt;code&gt;098b67d&lt;/code&gt;&lt;/a&gt; Docs: fix minor typo in &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12749&quot;&gt;#12749&lt;/a&gt;) (Marko Kaznovac)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b23ad0d789a909baf8d7c41a35bc53df932eaf30&quot;&gt;&lt;code&gt;b23ad0d&lt;/code&gt;&lt;/a&gt; Docs: change a broken link in &lt;a href=&quot;http://working-with-rules.md/&quot;&gt;working-with-rules.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12732&quot;&gt;#12732&lt;/a&gt;) (Damien Cassou)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e632c31d7e5363f1347b787702ecd4a85f5c11a2&quot;&gt;&lt;code&gt;e632c31&lt;/code&gt;&lt;/a&gt; Upgrade: several dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12753&quot;&gt;#12753&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e169576a526023ee297d5bc8b37eedba229f63d&quot;&gt;&lt;code&gt;4e16957&lt;/code&gt;&lt;/a&gt; Build: update browser build (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12693&quot;&gt;#12693&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/827259ea009f98a0fdf3f7ebf1bfb6cd661ce28d&quot;&gt;&lt;code&gt;827259e&lt;/code&gt;&lt;/a&gt; Build: package.json update for eslint-config-eslint release (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/561b6d4726f3e77dd40ba0d340ca7f08429cd2eb&quot;&gt;&lt;code&gt;561b6d4&lt;/code&gt;&lt;/a&gt; Chore: add prerequisites checklist to PR template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12790&quot;&gt;#12790&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9dfc8501fb1956c90dc11e6377b4cb38a6bea65d&quot;&gt;&lt;code&gt;9dfc850&lt;/code&gt;&lt;/a&gt; Chore: Refactor to use messageId in a number of rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12715&quot;&gt;#12715&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b77b8585e33fc4bb438a0e11ca8177c7eb91dbd8&quot;&gt;&lt;code&gt;b77b858&lt;/code&gt;&lt;/a&gt; Chore: fix separateRequires tests for &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12709&quot;&gt;#12709&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4df7dfb0199badb61d2c03ff4f7e4be735279d9&quot;&gt;&lt;code&gt;e4df7df&lt;/code&gt;&lt;/a&gt; Chore: add JSDoc types for RuleTester test cases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12325&quot;&gt;#12325&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/474439720258b1a64b305c31588f803104fa4aaf&quot;&gt;&lt;code&gt;4744397&lt;/code&gt;&lt;/a&gt; Chore: remove unused code in &lt;a href=&quot;https://eslint.org/docs/rules/max-lines-per-function&quot;&gt;max-lines-per-function&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12659&quot;&gt;#12659&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/39f5a453579b2ad732212edeb71f84ecb0991f97&quot;&gt;&lt;code&gt;39f5a45&lt;/code&gt;&lt;/a&gt; Chore: add test cases for &lt;a href=&quot;https://eslint.org/docs/rules/for-direction&quot;&gt;for-direction&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12698&quot;&gt;#12698&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3403045e535921df6d34785a4ce053e14ba27fd&quot;&gt;&lt;code&gt;b340304&lt;/code&gt;&lt;/a&gt; Chore: Add extra test, improve docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12492&quot;&gt;#12492&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.8.0 released</title>
    <link href="https://eslint.org/blog/2019/12/eslint-v6.8.0-released/"/>
    <updated>2019-12-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/12/eslint-v6.8.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The new &lt;a href=&quot;https://eslint.org/docs/user-guide/command-line-interface#no-error-on-unmatched-pattern&quot;&gt;&lt;code&gt;--no-error-on-unmatched-pattern&lt;/code&gt; CLI flag&lt;/a&gt; prevents errors when a quoted glob pattern or &lt;code&gt;--ext&lt;/code&gt; is not matched.&lt;/li&gt;
&lt;li&gt;ESLint now looks for &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#configuration-file-formats&quot;&gt;&lt;code&gt;.eslintrc.cjs&lt;/code&gt; config files&lt;/a&gt; to allow CommonJS-based configs in ES Module-based packages.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1713d0758b083f3840d724505f997a7cb20ff384&quot;&gt;&lt;code&gt;1713d07&lt;/code&gt;&lt;/a&gt; New: Add no-error-on-unmatched-pattern flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10587&quot;&gt;#10587&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12377&quot;&gt;#12377&lt;/a&gt;) (ncraley)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c25a26608fbd9a1d0127c9a3653609aa4b63e86&quot;&gt;&lt;code&gt;5c25a26&lt;/code&gt;&lt;/a&gt; Update: autofix bug in &lt;a href=&quot;https://eslint.org/docs/rules/lines-between-class-members&quot;&gt;lines-between-class-members&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12391&quot;&gt;#12391&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12632&quot;&gt;#12632&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05faebb943456ad2b20117f3c8b3eccbe2e2fb03&quot;&gt;&lt;code&gt;05faebb&lt;/code&gt;&lt;/a&gt; Update: improve suggestion testing experience (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12602&quot;&gt;#12602&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05f7dd53ed91a6e3be9eb40825fb6d2207f82209&quot;&gt;&lt;code&gt;05f7dd5&lt;/code&gt;&lt;/a&gt; Update: Add suggestions for &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-negation&quot;&gt;no-unsafe-negation&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12591&quot;&gt;#12591&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12609&quot;&gt;#12609&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1600648d2880ffb1e9e414b31ff0f66ead7167f9&quot;&gt;&lt;code&gt;1600648&lt;/code&gt;&lt;/a&gt; Update: Allow $schema in config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12612&quot;&gt;#12612&lt;/a&gt;) (Yordis Prieto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acc0e47572a9390292b4e313b4a4bf360d236358&quot;&gt;&lt;code&gt;acc0e47&lt;/code&gt;&lt;/a&gt; Update: support .eslintrc.cjs (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/43&quot;&gt;eslint/rfcs#43&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12321&quot;&gt;#12321&lt;/a&gt;) (Evan Plaice)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a230f8404e4f2423dd79378b065d24c12776775b&quot;&gt;&lt;code&gt;a230f84&lt;/code&gt;&lt;/a&gt; Update: include node version in cache (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12582&quot;&gt;#12582&lt;/a&gt;) (Eric Wang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e36d12d95e76022172fd0ec8a5e85c22fde6a8a&quot;&gt;&lt;code&gt;6e36d12&lt;/code&gt;&lt;/a&gt; Update: do not recommend &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;require-atomic-updates&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/11899&quot;&gt;#11899&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12599&quot;&gt;#12599&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5c708666b450fb69522a55aa375626f9297dc6f&quot;&gt;&lt;code&gt;c5c7086&lt;/code&gt;&lt;/a&gt; Fix: ignore aligning single line in &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;key-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11414&quot;&gt;#11414&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12652&quot;&gt;#12652&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/272e4db6074283bc01cc6ec72c9e396bb3c110e6&quot;&gt;&lt;code&gt;272e4db&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-multiple-empty-lines&quot;&gt;no-multiple-empty-lines&lt;/a&gt;: Adjust reported &lt;code&gt;loc&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12594&quot;&gt;#12594&lt;/a&gt;) (Tobias Bieniek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a258039e556075d7d1f955a79d094ea103ec165a&quot;&gt;&lt;code&gt;a258039&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; schema allows multiple paths/patterns objects (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12639&quot;&gt;#12639&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51f9620cc55cc091fe38dbe68e4633de06297b8c&quot;&gt;&lt;code&gt;51f9620&lt;/code&gt;&lt;/a&gt; Fix: improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/array-bracket-spacing&quot;&gt;array-bracket-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12653&quot;&gt;#12653&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/45364afc9c7f0251348cd1a7a13656c3816435d7&quot;&gt;&lt;code&gt;45364af&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-numeric-literals&quot;&gt;prefer-numeric-literals&lt;/a&gt; doesn’t check types of literal arguments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12655&quot;&gt;#12655&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3e43f1c10c5e19f40e7b3d3944b87f1b0c9c075&quot;&gt;&lt;code&gt;d3e43f1&lt;/code&gt;&lt;/a&gt; Docs: Update &lt;a href=&quot;https://eslint.org/docs/rules/no-multi-assign&quot;&gt;no-multi-assign&lt;/a&gt; explanation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12615&quot;&gt;#12615&lt;/a&gt;) (Yuping Zuo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3c570eaf3d1d44fb57bf42f1870887856e4c5a0&quot;&gt;&lt;code&gt;e3c570e&lt;/code&gt;&lt;/a&gt; Docs: Add example for expression option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12694&quot;&gt;#12694&lt;/a&gt;) (Arnaud Barré)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6b774ef0d849ccf5c1127b25e1fe7c3e438d586b&quot;&gt;&lt;code&gt;6b774ef&lt;/code&gt;&lt;/a&gt; Docs: Add spacing in comments for &lt;a href=&quot;https://eslint.org/docs/rules/no-console&quot;&gt;no-console&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12696&quot;&gt;#12696&lt;/a&gt;) (Nikki Nikkhoui)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab912f0ef709a916ab9a27ea09d9d7adf046fb2d&quot;&gt;&lt;code&gt;ab912f0&lt;/code&gt;&lt;/a&gt; Docs: 1tbs with allowSingleLine edge cases (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12284&quot;&gt;#12284&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12314&quot;&gt;#12314&lt;/a&gt;) (Ari Kardasis)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e9cef99e6ebec1faefdb576ca597e81ae4f04afd&quot;&gt;&lt;code&gt;e9cef99&lt;/code&gt;&lt;/a&gt; Docs: wrap
{{}} in raw liquid tags to prevent interpolation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12643&quot;&gt;#12643&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e70745325ff9e085acc6843dd8bfae5550645d4f&quot;&gt;&lt;code&gt;e707453&lt;/code&gt;&lt;/a&gt; Docs: Fix configuration example in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11717&quot;&gt;#11717&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12638&quot;&gt;#12638&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9986d9e0baed0d3586bbee472fe2fae2ed625f5d&quot;&gt;&lt;code&gt;9986d9e&lt;/code&gt;&lt;/a&gt; Chore: add object option test cases in &lt;a href=&quot;https://eslint.org/docs/rules/yield-star-spacing&quot;&gt;yield-star-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12679&quot;&gt;#12679&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b3cc5cd2459f04eae149faea0651785d7f9db0b&quot;&gt;&lt;code&gt;4b3cc5c&lt;/code&gt;&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/prefer-regex-literals&quot;&gt;prefer-regex-literals&lt;/a&gt; in eslint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12268&quot;&gt;#12268&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7171fca6ef4e0e8f267658fc7d8f603f00eddd84&quot;&gt;&lt;code&gt;7171fca&lt;/code&gt;&lt;/a&gt; Chore: refactor regex in config comment parser (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12662&quot;&gt;#12662&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/49c1658544ace24b9aaaa301af0fc07a2ef3bf30&quot;&gt;&lt;code&gt;49c1658&lt;/code&gt;&lt;/a&gt; Chore: remove bundling of ESLint during release (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12676&quot;&gt;#12676&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/257f3d67905a52bf8602a5a5707c893cc90d7ca7&quot;&gt;&lt;code&gt;257f3d6&lt;/code&gt;&lt;/a&gt; Chore: complete to move to GitHub Actions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12625&quot;&gt;#12625&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b65f175dfb4fac11ed7184537be400ed14996fb&quot;&gt;&lt;code&gt;8b65f17&lt;/code&gt;&lt;/a&gt; Chore: remove references to parser demo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12644&quot;&gt;#12644&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19194cec724e016df02376bbeae31171be6f0bdf&quot;&gt;&lt;code&gt;19194ce&lt;/code&gt;&lt;/a&gt; Chore: Add tests to cover default object options in &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12627&quot;&gt;#12627&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.7.2 released</title>
    <link href="https://eslint.org/blog/2019/11/eslint-v6.7.2-released/"/>
    <updated>2019-11-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/11/eslint-v6.7.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bc435a93afd6ba4def1b53993ef7cf8220f3f070&quot;&gt;&lt;code&gt;bc435a9&lt;/code&gt;&lt;/a&gt; Fix: isSpaceBetweenTokens() recognizes spaces in JSXText (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12614&quot;&gt;#12614&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12616&quot;&gt;#12616&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4928d513b4fe716c7ed958c294a10ef8517be25e&quot;&gt;&lt;code&gt;4928d51&lt;/code&gt;&lt;/a&gt; Fix: don’t ignore the entry directory (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12604&quot;&gt;#12604&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12607&quot;&gt;#12607&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea16de4e7c6f661398b0b7843f95e5f307c89551&quot;&gt;&lt;code&gt;ea16de4&lt;/code&gt;&lt;/a&gt; Fix: Support tagged template literal generics in &lt;a href=&quot;https://eslint.org/docs/rules/no-unexpected-multiline&quot;&gt;no-unexpected-multiline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11698&quot;&gt;#11698&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b41677ae2a143790b19b0e70391a46ec6c8f5de1&quot;&gt;&lt;code&gt;b41677a&lt;/code&gt;&lt;/a&gt; Docs: Clarify suggestion’s data in Working with Rules (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/12606&quot;&gt;#12606&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12617&quot;&gt;#12617&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.7.1 released</title>
    <link href="https://eslint.org/blog/2019/11/eslint-v6.7.1-released/"/>
    <updated>2019-11-24T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/11/eslint-v6.7.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd1e9f4df2103c43509a54b0ad5f9106557997f9&quot;&gt;&lt;code&gt;dd1e9f4&lt;/code&gt;&lt;/a&gt; Fix: revert changes to &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;key-spacing&lt;/a&gt; due to regression (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12598&quot;&gt;#12598&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c644b5429e5bc8a050afd70c99ec82035eb611fa&quot;&gt;&lt;code&gt;c644b54&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.7.0 released</title>
    <link href="https://eslint.org/blog/2019/11/eslint-v6.7.0-released/"/>
    <updated>2019-11-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/11/eslint-v6.7.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;suggestions-api&quot; tabindex=&quot;-1&quot;&gt;Suggestions API&lt;/h3&gt;
&lt;p&gt;This release contains a new Suggestions API for rule authors and integrations. You can read more about this exciting new feature &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;ignorepatterns-in-config-files&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;ignorePatterns&lt;/code&gt; in config files&lt;/h3&gt;
&lt;p&gt;This release adds a new &lt;code&gt;ignorePatterns&lt;/code&gt; property in config files (including shareable configs) in order to control the files ESLint ignores. See also &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#ignoring-files-and-directories&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/grouped-accessor-pairs&quot;&gt;grouped-accessor-pairs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-constructor-return&quot;&gt;no-constructor-return&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-dupe-else-if&quot;&gt;no-dupe-else-if&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-setter-return&quot;&gt;no-setter-return&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-exponentiation-operator&quot;&gt;prefer-exponentiation-operator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;deprecations&quot; tabindex=&quot;-1&quot;&gt;Deprecations&lt;/h3&gt;
&lt;p&gt;Please note that these deprecated features may be removed in a future major release of ESLint.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#personal-configuration-file-deprecated&quot;&gt;Personal configuration files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#deprecated&quot;&gt;&lt;code&gt;sourceCode#isSpaceBetweenTokens()&lt;/code&gt; has been deprecated in favor of &lt;code&gt;sourceCode#isSpaceBetween()&lt;/code&gt;.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/312a88f2230082d898b7d8d82f8af63cb352e55a&quot;&gt;&lt;code&gt;312a88f&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/grouped-accessor-pairs&quot;&gt;grouped-accessor-pairs&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12277&quot;&gt;#12277&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12331&quot;&gt;#12331&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6eaad964ff159d0a38de96c1104782ffe6858c78&quot;&gt;&lt;code&gt;6eaad96&lt;/code&gt;&lt;/a&gt; New: Add suggestions API (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12384&quot;&gt;#12384&lt;/a&gt;) (Will Douglas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a2eb99f11c65813bba11d6576a06cff2b823cc9&quot;&gt;&lt;code&gt;1a2eb99&lt;/code&gt;&lt;/a&gt; New: new rule &lt;a href=&quot;https://eslint.org/docs/rules/no-constructor-return&quot;&gt;no-constructor-return&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12481&quot;&gt;#12481&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12529&quot;&gt;#12529&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ca3b2a62c9e829dc4534bca3643d6bc729b46df0&quot;&gt;&lt;code&gt;ca3b2a6&lt;/code&gt;&lt;/a&gt; New: ignorePatterns in config files (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/22&quot;&gt;eslint/rfcs#22&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12274&quot;&gt;#12274&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17a8849491a983f6cb8e98da8c0c9d52ff5f2aa6&quot;&gt;&lt;code&gt;17a8849&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-dupe-else-if&quot;&gt;no-dupe-else-if&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12469&quot;&gt;#12469&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12504&quot;&gt;#12504&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/45aa6a3ba3486f1b116c5daab6432d144e5ea574&quot;&gt;&lt;code&gt;45aa6a3&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-setter-return&quot;&gt;no-setter-return&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12285&quot;&gt;#12285&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12346&quot;&gt;#12346&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41b1e4308c1cb01c8b00cc8adc36440e77854117&quot;&gt;&lt;code&gt;41b1e43&lt;/code&gt;&lt;/a&gt; New: add option for &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12527&quot;&gt;#12527&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12528&quot;&gt;#12528&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de65de6e488112a602949e6a5d27dd4c754b003c&quot;&gt;&lt;code&gt;de65de6&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/prefer-exponentiation-operator&quot;&gt;prefer-exponentiation-operator&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10482&quot;&gt;#10482&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12360&quot;&gt;#12360&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e17fb90f5817d16081e690eb06b7720afcb9fa2a&quot;&gt;&lt;code&gt;e17fb90&lt;/code&gt;&lt;/a&gt; New: allowAfterThisConstructor for &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle&quot;&gt;no-underscore-dangle&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11488&quot;&gt;#11488&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11489&quot;&gt;#11489&lt;/a&gt;) (sripberger)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c68f5feeb4a6c0cb53ff76b2fd255b5bfa69c93&quot;&gt;&lt;code&gt;5c68f5f&lt;/code&gt;&lt;/a&gt; Update: Add ‘lexicalBindings’ to &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-globals&quot;&gt;no-implicit-globals&lt;/a&gt; and change messages (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11996&quot;&gt;#11996&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97c745dc277febbea82552a4d9186e3df847f860&quot;&gt;&lt;code&gt;97c745d&lt;/code&gt;&lt;/a&gt; Update: Report assignment expression location in &lt;a href=&quot;https://eslint.org/docs/rules/no-cond-assign&quot;&gt;no-cond-assign&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12465&quot;&gt;#12465&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f01f3d0807c580631c2fdcff29192a64a870637&quot;&gt;&lt;code&gt;0f01f3d&lt;/code&gt;&lt;/a&gt; Update: Check member expressions with &lt;code&gt;this&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;operator-assignment&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12495&quot;&gt;#12495&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f8a1ee1c26ccb5882e5e83ea7eab2f406c7476b&quot;&gt;&lt;code&gt;4f8a1ee&lt;/code&gt;&lt;/a&gt; Update: Add enforceForClassMembers option to &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;no-useless-computed-key&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12110&quot;&gt;#12110&lt;/a&gt;) (ark120202)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41a78fd7ce245cad8ff6a96c42f5840688849427&quot;&gt;&lt;code&gt;41a78fd&lt;/code&gt;&lt;/a&gt; Update: improve location for &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;semi&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12380&quot;&gt;#12380&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8030fc23e88f57a04d955b3befd1ab0fc2c5d10&quot;&gt;&lt;code&gt;b8030fc&lt;/code&gt;&lt;/a&gt; Update: deprecate personal config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11914&quot;&gt;#11914&lt;/a&gt;, refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/32&quot;&gt;eslint/rfcs#32&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12426&quot;&gt;#12426&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6503cb8d99e549fece53b80b110e890a7978b9fd&quot;&gt;&lt;code&gt;6503cb8&lt;/code&gt;&lt;/a&gt; Update: Fix uglified object align in &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;key-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11414&quot;&gt;#11414&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12472&quot;&gt;#12472&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f7edefdc1576d5e3e7ef89083002b0a4a31f039&quot;&gt;&lt;code&gt;0f7edef&lt;/code&gt;&lt;/a&gt; Update: add react plugin config for eslint init (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12446&quot;&gt;#12446&lt;/a&gt;) (Ibrahim Rouis)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/448ff1e53734c503fb9e7e6802c1c7e441d4c019&quot;&gt;&lt;code&gt;448ff1e&lt;/code&gt;&lt;/a&gt; Update: Report ‘&#92;08’ and ‘&#92;09’ in &lt;a href=&quot;https://eslint.org/docs/rules/no-octal-escape&quot;&gt;no-octal-escape&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12080&quot;&gt;#12080&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12526&quot;&gt;#12526&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90305e017c2c5fba0b4b62f41b180910b4baeedb&quot;&gt;&lt;code&gt;90305e0&lt;/code&gt;&lt;/a&gt; Update: Depcrecate isSpaceBetweenTokens() (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12519&quot;&gt;#12519&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/990065e5f58b6cc6922ab6cee5b97bfc56a6237a&quot;&gt;&lt;code&gt;990065e&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;curly&lt;/a&gt; multi-or-nest flagging semis on next line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12370&quot;&gt;#12370&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12378&quot;&gt;#12378&lt;/a&gt;) (cherryblossom000)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7e41355b19a8ef347620dd7c0dde491c3460937b&quot;&gt;&lt;code&gt;7e41355&lt;/code&gt;&lt;/a&gt; Update: improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/space-infix-ops&quot;&gt;space-infix-ops&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12324&quot;&gt;#12324&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/94ff921689115f856578159564ee1968b4b914be&quot;&gt;&lt;code&gt;94ff921&lt;/code&gt;&lt;/a&gt; Update: Add capIsConstructor option to &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-this&quot;&gt;no-invalid-this&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12271&quot;&gt;#12271&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12308&quot;&gt;#12308&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c78f4a73de68f81cd41132b46d4840b91599d599&quot;&gt;&lt;code&gt;c78f4a7&lt;/code&gt;&lt;/a&gt; Update: Allow JSX exception in &lt;a href=&quot;https://eslint.org/docs/rules/no-inline-comments&quot;&gt;no-inline-comments&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11270&quot;&gt;#11270&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12388&quot;&gt;#12388&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b336fbedecd85731611fdc2dfd8edb635a8b1c39&quot;&gt;&lt;code&gt;b336fbe&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule with JSX spread props (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12581&quot;&gt;#12581&lt;/a&gt;) (Nathan Woltman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62c7038a493d89e4a7b14ac673a063d09d04057b&quot;&gt;&lt;code&gt;62c7038&lt;/code&gt;&lt;/a&gt; Fix: invalid token checking in &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;computed-property-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12198&quot;&gt;#12198&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12533&quot;&gt;#12533&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62623f9f611a3adb79696304760a2fd14be8afbc&quot;&gt;&lt;code&gt;62623f9&lt;/code&gt;&lt;/a&gt; Fix: preserve whitespace in &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12312&quot;&gt;#12312&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12316&quot;&gt;#12316&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fed20bb039cf9f53adfcf93e467f418c5e958f45&quot;&gt;&lt;code&gt;fed20bb&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/require-await&quot;&gt;require-await&lt;/a&gt; crash on global await (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12571&quot;&gt;#12571&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/40c8c3264c7c383d98c9faf9c4cb4f8b75aee40f&quot;&gt;&lt;code&gt;40c8c32&lt;/code&gt;&lt;/a&gt; Fix: improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-spacing&quot;&gt;object-curly-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12563&quot;&gt;#12563&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1110045e0d28a461e75d2f57d5f01533d59ef239&quot;&gt;&lt;code&gt;1110045&lt;/code&gt;&lt;/a&gt; Fix: ignore marker-only comments in &lt;a href=&quot;https://eslint.org/docs/rules/spaced-comment&quot;&gt;spaced-comment&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12036&quot;&gt;#12036&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12558&quot;&gt;#12558&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0afb518d1f139376245613dddd8eaef32b52d619&quot;&gt;&lt;code&gt;0afb518&lt;/code&gt;&lt;/a&gt; Fix: invalid autofix in &lt;a href=&quot;https://eslint.org/docs/rules/function-call-argument-newline&quot;&gt;function-call-argument-newline&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12454&quot;&gt;#12454&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12539&quot;&gt;#12539&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e29e189752f06362fd1956659e07834efb746a5&quot;&gt;&lt;code&gt;9e29e18&lt;/code&gt;&lt;/a&gt; Fix: sourceCode#isSpaceBetweenTokens() checks non-adjacent tokens (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12491&quot;&gt;#12491&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb556d5fd735ad2dcea322082edcc07a58105ce9&quot;&gt;&lt;code&gt;bb556d5&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;curly&lt;/a&gt; &lt;code&gt;multi&lt;/code&gt; reports single lexical declarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11908&quot;&gt;#11908&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12513&quot;&gt;#12513&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ac606217d4beebc35b865d14a7f9723fd21faa48&quot;&gt;&lt;code&gt;ac60621&lt;/code&gt;&lt;/a&gt; Fix: unexpected autofix in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;prefer-const&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12514&quot;&gt;#12514&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12521&quot;&gt;#12521&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/084a8a63a749232681fefe9bdac6802efdcdc8a8&quot;&gt;&lt;code&gt;084a8a6&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-cond-assign&quot;&gt;no-cond-assign&lt;/a&gt; with &lt;code&gt;always&lt;/code&gt; option reports switch case clauses (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12470&quot;&gt;#12470&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60204a3620e33a078c1c35fa2e5d839a16c627ff&quot;&gt;&lt;code&gt;60204a3&lt;/code&gt;&lt;/a&gt; Docs: Added another Textmate 2 bundle. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12580&quot;&gt;#12580&lt;/a&gt;) (Ryan Fitzer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a480f8307a0e438032f484254941e6426748143&quot;&gt;&lt;code&gt;0a480f8&lt;/code&gt;&lt;/a&gt; Docs: Change “Code Conventions” link in &lt;a href=&quot;http://pull-requests.md/&quot;&gt;pull-requests.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12401&quot;&gt;#12401&lt;/a&gt;) (Denis Sikuler)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/40791af69efde1701690637603ad37d41e15a727&quot;&gt;&lt;code&gt;40791af&lt;/code&gt;&lt;/a&gt; Docs: clarify ignoreDestructuring option in the &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12553&quot;&gt;#12553&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0286b5730501b391c74e069db46849f0de0885d2&quot;&gt;&lt;code&gt;0286b57&lt;/code&gt;&lt;/a&gt; Docs: Clean up Getting Started Guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12544&quot;&gt;#12544&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/586855060afb3201f4752be8820dc85703b523a6&quot;&gt;&lt;code&gt;5868550&lt;/code&gt;&lt;/a&gt; Docs: add notice about &lt;code&gt;function&lt;/code&gt; keyword in &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12524&quot;&gt;#12524&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e142ea411dfb692b6e2a69cd5f1204ade4dd58a&quot;&gt;&lt;code&gt;4e142ea&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f49f1e0a69afa49f6548af7b2c0e6347e1ea022d&quot;&gt;&lt;code&gt;f49f1e0&lt;/code&gt;&lt;/a&gt; Upgrade: upgrade optionator to avoid license issue (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11536&quot;&gt;#11536&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12537&quot;&gt;#12537&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/98e1d50273f31c2a7b59772298280ed7305274c8&quot;&gt;&lt;code&gt;98e1d50&lt;/code&gt;&lt;/a&gt; Upgrade: globals to v12.1.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12296&quot;&gt;#12296&lt;/a&gt;) (Tony Brix)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/287ca562811d037bde09a47af7f5b9c7b741e022&quot;&gt;&lt;code&gt;287ca56&lt;/code&gt;&lt;/a&gt; Build: update CI for Node.js 13 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12496&quot;&gt;#12496&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/07d398d91d5b6d0247e58b1f8ea64bb5acd570a8&quot;&gt;&lt;code&gt;07d398d&lt;/code&gt;&lt;/a&gt; Chore: Add GitHub organization to Sponsor button (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12562&quot;&gt;#12562&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a47770706ac59633dcd73e886d1a7282b324ee06&quot;&gt;&lt;code&gt;a477707&lt;/code&gt;&lt;/a&gt; Chore: Format style guide links so they can be clicked (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12189&quot;&gt;#12189&lt;/a&gt;) (Ivan V)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/575a98d724b2688f1e9c83744c5dc9ffe9a7bfb4&quot;&gt;&lt;code&gt;575a98d&lt;/code&gt;&lt;/a&gt; Chore: Add funding field to package.json (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12543&quot;&gt;#12543&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Funding ESLint&#39;s Future: November Update</title>
    <link href="https://eslint.org/blog/2019/11/funding-update/"/>
    <updated>2019-11-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/11/funding-update/</id>
    <content type="html">&lt;p&gt;Back in February, we &lt;a href=&quot;https://eslint.org/blog/2019/02/funding-eslint-future&quot;&gt;announced&lt;/a&gt; the creation of the &lt;a href=&quot;https://opencollective.com/eslint&quot;&gt;ESLint Collective&lt;/a&gt; to raise funds for the ongoing maintenance and development of ESLint. Our goal was to raise $20,000 each month to support the project, and since then, we’ve been grateful for contributions from nearly 150 companies, projects, and individuals towards that goal.&lt;/p&gt;
&lt;p&gt;We are happy to share that we are currently sponsored at just under $10,000 per month, almost 50% of our goal! At this level, we’ve been able to start paying team members for their time (more about this below), ensuring ESLint gets the ongoing support it needs.&lt;/p&gt;
&lt;h2 id=&quot;how-we%E2%80%99ve-used-the-money&quot; tabindex=&quot;-1&quot;&gt;How we’ve used the money&lt;/h2&gt;
&lt;p&gt;As mentioned above, the most exciting thing we’ve been able to do with the money you’ve donated is pay a team member to work on ESLint part-time. &lt;a href=&quot;https://github.com/kaicataldo&quot;&gt;Kai Cataldo&lt;/a&gt; has been involved with ESLint for several years and for the past two months has been working part-time on ESLint. Having Kai consistently working on the project has meant faster response times to issues and pull requests, and better coordination across the team. Here’s what Kai said about this experience:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As a long-time maintainer of ESLint, I’m both humbled and grateful to be able to be paid to work on the project. Instead of eking out a few minutes between other activities, it has allowed me to carve out blocks of time to dedicate to consistent, focused work. In practical terms, it has allowed me to better prioritize the time I spend on the project, and I’ve been able to be more active, from finding more time to write code, to reviewing pull requests, to  managing bug reports and feature requests from the community. So much of the software we use every day relies on projects like ESLint to deliver value and improve our lives, and the resources we spend on these projects have an enormous ripple effect. Money certainly isn’t everything, but there is a big difference between volunteer work and a job, and investment from the community has in turn allowed me to invest more focused time and energy into ESLint.&lt;/p&gt;
&lt;p&gt;– Kai Cataldo, ESLint team member&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Our hope is that as we continue raising money, we will be able to bring on at least one more part-time maintainer to keep the ESLint project running smoothly.&lt;/p&gt;
&lt;h2 id=&quot;what-our-sponsors-are-telling-us&quot; tabindex=&quot;-1&quot;&gt;What our sponsors are telling us&lt;/h2&gt;
&lt;p&gt;We also reached out to our sponsors to ask them how they use ESLint internally and why they decided to sponsor the ESLint project. &lt;a href=&quot;https://shopify.com/&quot;&gt;Shopify&lt;/a&gt; is one of our more recent sponsors, and here’s what they had to say:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We use ESLint to push developers towards patterns that are better for the long-term maintainability of the codebase. We’ve written many custom rules to avoid vagueness in tests, ensure that all content is translated, prevent code from reaching for implementation details of its dependencies, and much more. We also use great community plugins that offer many additional rules around React, TypeScript, and GraphQL. All of these rules run on every commit, in every app, offering a consistent set of stylistic guidelines no matter what project a developer is working on.&lt;/p&gt;
&lt;p&gt;– Chris Sauve, Web Developer at Shopify&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;One of our initial sponsors, &lt;a href=&quot;https://facebook.com/&quot;&gt;Facebook&lt;/a&gt;, also makes use of ESLint internally:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ESLint is a valued part of the JS ecosystem and developer community. ESLint is used in production systems. Thanks to you and the community for all the dedication and hard work.&lt;/p&gt;
&lt;p&gt;The FB OSS program supports communities in many ways. Direct community sponsorships is one area where it is experimenting.&lt;/p&gt;
&lt;p&gt;– Erik Nakagawa, Head of Open Source at Calibra (Facebook)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Another of our initial sponsors, &lt;a href=&quot;https://salesforce.com/&quot;&gt;Salesforce&lt;/a&gt;, makes extensive use of ESLint as part of their larger development ecosystem:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We have been using ESLint for many years, specially on our core platform, where it has become one of the most fundamental pieces of our pipeline.&lt;/p&gt;
&lt;p&gt;To name some of our most important use cases of ESLint:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We use it to validate and enforce specific rules and semantics every time a customer pushes components to our platform. That helps us scale and guarantee correctness on all the code that we serve.&lt;/li&gt;
&lt;li&gt;We use it to give all our developers a recommended set of rules, patterns and stylistic principles that allow us to keep a healthy and maintainable code base.&lt;/li&gt;
&lt;li&gt;We use it to guard specific API usages that will prevent the code from running in different conditions or host environments.&lt;/li&gt;
&lt;li&gt;We use it to help our customers write performant code, specially in IE11 where we have rules to prevent specific grammar that will transpile down to very inefficient code (ex. async-await, default function parameters).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Given that ESLint is such a core part of our platform and ecosystem, we are really proud to be part of the community by sponsoring and contributing in any way we can to the future of an amazing project.&lt;/p&gt;
&lt;p&gt;– Diego Ferreiro Val, Principal Architect at Salesforce&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;help-us-reach-our-goal&quot; tabindex=&quot;-1&quot;&gt;Help us reach our goal&lt;/h2&gt;
&lt;p&gt;If your company also uses ESLint to find and fix problems in your JavaScript code, please ask them to join these fantastic companies in &lt;a href=&quot;https://opencollective.com/eslint&quot;&gt;sponsoring ESLint&lt;/a&gt;. (All sponsors above $200 per month get their logos on both the ESLint README and on the homepage of &lt;a href=&quot;http://eslint.org/&quot;&gt;eslint.org&lt;/a&gt;.)&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.6.0 released</title>
    <link href="https://eslint.org/blog/2019/10/eslint-v6.6.0-released/"/>
    <updated>2019-10-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/10/eslint-v6.6.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rules can now access &lt;code&gt;context.getCwd()&lt;/code&gt; to get the current working directory&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;use-isnan&lt;/a&gt; rule has a new &lt;code&gt;enforceForIndexOf&lt;/code&gt; option&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-param-reassign&quot;&gt;no-param-reassign&lt;/a&gt; rule has a new &lt;code&gt;ignorePropertyModificationsForRegex&lt;/code&gt; option&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-negation&quot;&gt;no-unsafe-negation&lt;/a&gt; rule has a new &lt;code&gt;enforceForOrderingRelations&lt;/code&gt; option&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; has a new &lt;code&gt;enforceForNewInMemberExpressions&lt;/code&gt; option&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, we have improved the error report locations for a number of rules with this release.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/874fe1642a10a0fb937ccccdd4d22343b84f80dc&quot;&gt;&lt;code&gt;874fe16&lt;/code&gt;&lt;/a&gt; New: pass cwd from cli engine (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12389&quot;&gt;#12389&lt;/a&gt;) (Eric Wang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/39dfe0880fa934e287e8ea1f7b56d5cba8d43765&quot;&gt;&lt;code&gt;39dfe08&lt;/code&gt;&lt;/a&gt; Update: false positives in &lt;a href=&quot;https://eslint.org/docs/rules/function-call-argument-newline&quot;&gt;function-call-argument-newline&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12123&quot;&gt;#12123&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12280&quot;&gt;#12280&lt;/a&gt;) (Scott O’Hara)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d842105c9c82026be668d7425213138903d4d41&quot;&gt;&lt;code&gt;4d84210&lt;/code&gt;&lt;/a&gt; Update: improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/no-trailing-spaces&quot;&gt;no-trailing-spaces&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12315&quot;&gt;#12315&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12477&quot;&gt;#12477&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c6a7745a1371a85932bfae5fec039d1b6fcfc128&quot;&gt;&lt;code&gt;c6a7745&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-trailing-spaces&quot;&gt;no-trailing-spaces&lt;/a&gt; false negatives after comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12479&quot;&gt;#12479&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12480&quot;&gt;#12480&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c6a9a3bc58b69dbf9be9cd09b0283c081ca211e7&quot;&gt;&lt;code&gt;c6a9a3b&lt;/code&gt;&lt;/a&gt; Update: Add enforceForIndexOf option to &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;use-isnan&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12207&quot;&gt;#12207&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12379&quot;&gt;#12379&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/364877b2504e8f7ece04770b93d517e2f27458d0&quot;&gt;&lt;code&gt;364877b&lt;/code&gt;&lt;/a&gt; Update: measure plugin loading time and output in debug message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12395&quot;&gt;#12395&lt;/a&gt;) (Victor Homyakov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aac3be435cccc241781150fcac728df04d086fa8&quot;&gt;&lt;code&gt;aac3be4&lt;/code&gt;&lt;/a&gt; Update: Add ignored prop regex &lt;a href=&quot;https://eslint.org/docs/rules/no-param-reassign&quot;&gt;no-param-reassign&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11275&quot;&gt;#11275&lt;/a&gt;) (Luke Bennett)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7dffe482d646d4e5f94fa87a22f3b5b2e0a4b189&quot;&gt;&lt;code&gt;7dffe48&lt;/code&gt;&lt;/a&gt; Update: Enable function string option in &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12058&quot;&gt;#12058&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12462&quot;&gt;#12462&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c8bbe0391944e1f92e083a04715bf4b3fe6be5d&quot;&gt;&lt;code&gt;7c8bbe0&lt;/code&gt;&lt;/a&gt; Update: enforceForOrderingRelations &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-negation&quot;&gt;no-unsafe-negation&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12163&quot;&gt;#12163&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12414&quot;&gt;#12414&lt;/a&gt;) (Sam Rae)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/349ed6700e1155384597e1e6035550a96cb8a42d&quot;&gt;&lt;code&gt;349ed67&lt;/code&gt;&lt;/a&gt; Update: improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-operators&quot;&gt;no-mixed-operators&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12328&quot;&gt;#12328&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e7c18ddb30b32ee5b2e842cc8258aa7aebb7445&quot;&gt;&lt;code&gt;6e7c18d&lt;/code&gt;&lt;/a&gt; Update: enforceForNewInMemberExpressions &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12428&quot;&gt;#12428&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12436&quot;&gt;#12436&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d6e345e3c2626b0f2252f22cfaffdf53ea0871a&quot;&gt;&lt;code&gt;2d6e345&lt;/code&gt;&lt;/a&gt; Update: make isSpaceBetweenTokens() ignore newline in comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12407&quot;&gt;#12407&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/84f71de0e686e0fe37b83d6728ce1825caaa44fb&quot;&gt;&lt;code&gt;84f71de&lt;/code&gt;&lt;/a&gt; Update: remove default overrides in &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12369&quot;&gt;#12369&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12411&quot;&gt;#12411&lt;/a&gt;) (YeonJuan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/18a0b0e3df927428a22b5b5295f9faee4bd57246&quot;&gt;&lt;code&gt;18a0b0e&lt;/code&gt;&lt;/a&gt; Update: improve report location for no-&lt;a href=&quot;https://eslint.org/docs/rules/space-in-parens&quot;&gt;space-in-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12364&quot;&gt;#12364&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d61c8a5a75447a36276f2d4f84afb3e1129618da&quot;&gt;&lt;code&gt;d61c8a5&lt;/code&gt;&lt;/a&gt; Update: improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/no-multi-spaces&quot;&gt;no-multi-spaces&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12329&quot;&gt;#12329&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b962775b8cb7c90985a5ab63e56744bb2ba79644&quot;&gt;&lt;code&gt;b962775&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-self-assign&quot;&gt;no-self-assign&lt;/a&gt; should detect member expression with this (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12279&quot;&gt;#12279&lt;/a&gt;) (Tibor Blenessy)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0bffe953d2752dd2d3045f2f8771c96b6cee8fc4&quot;&gt;&lt;code&gt;0bffe95&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;no-misleading-character-class&lt;/a&gt; crash on invalid regex (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12169&quot;&gt;#12169&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12347&quot;&gt;#12347&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1744faba3c93c869f7dbbf0a704d32e2692d6856&quot;&gt;&lt;code&gt;1744fab&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;operator-assignment&lt;/a&gt; removes and duplicates comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12485&quot;&gt;#12485&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52ca11a66ab6c2fb5a71d8b9869482f14f98cb9d&quot;&gt;&lt;code&gt;52ca11a&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;operator-assignment&lt;/a&gt; invalid autofix with adjacent tokens (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12483&quot;&gt;#12483&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f6d0dcdf5adc30079a7379bbf605a4ef3887a85&quot;&gt;&lt;code&gt;0f6d0dc&lt;/code&gt;&lt;/a&gt; Fix: CLIEngine#addPlugin reset lastConfigArrays (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12425&quot;&gt;#12425&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12468&quot;&gt;#12468&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/49faefbee3fc7daaf2482d9d7d23513d6ffda9e8&quot;&gt;&lt;code&gt;49faefb&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-obj-calls&quot;&gt;no-obj-calls&lt;/a&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12437&quot;&gt;#12437&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12467&quot;&gt;#12467&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3dbd9657bbeac6571111a4429b03fc085ba6655&quot;&gt;&lt;code&gt;b3dbd96&lt;/code&gt;&lt;/a&gt; Fix: problematic installation issue (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11018&quot;&gt;#11018&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12309&quot;&gt;#12309&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89e8aafcc622a4763bed6b9d62f148ef95798f38&quot;&gt;&lt;code&gt;89e8aaf&lt;/code&gt;&lt;/a&gt; Fix: improve report location for &lt;a href=&quot;https://eslint.org/docs/rules/no-tabs&quot;&gt;no-tabs&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12471&quot;&gt;#12471&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a102eaa9ac19e1c6d92f79a4033e9048cfb64c0d&quot;&gt;&lt;code&gt;a102eaa&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-numeric-literals&quot;&gt;prefer-numeric-literals&lt;/a&gt; invalid autofix with adjacent tokens (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12387&quot;&gt;#12387&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51fbbd78f98f223d17071650f5117d07f60dadc2&quot;&gt;&lt;code&gt;51fbbd7&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/array-bracket-newline&quot;&gt;array-bracket-newline&lt;/a&gt; consistent error with comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12416&quot;&gt;#12416&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12441&quot;&gt;#12441&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e657d4ccb9f3dd5cacceaaa40ffe24ac29a1349a&quot;&gt;&lt;code&gt;e657d4c&lt;/code&gt;&lt;/a&gt; Fix: report full dot location in &lt;a href=&quot;https://eslint.org/docs/rules/dot-location&quot;&gt;dot-location&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12452&quot;&gt;#12452&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8233873b8e5facd80ab7b172bff1e896a9c5fd39&quot;&gt;&lt;code&gt;8233873&lt;/code&gt;&lt;/a&gt; Docs: Add note about Node.js requiring SSL support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11413&quot;&gt;#11413&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12475&quot;&gt;#12475&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e15e1f933f287d274a726e7f0f0a1dd80f0964af&quot;&gt;&lt;code&gt;e15e1f9&lt;/code&gt;&lt;/a&gt; Docs: fix doc for &lt;a href=&quot;https://eslint.org/docs/rules/no-unneeded-ternary&quot;&gt;no-unneeded-ternary&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12098&quot;&gt;#12098&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12410&quot;&gt;#12410&lt;/a&gt;) (Sam Rae)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02977f25a922dd0b8617c16116bb4364d0f30e94&quot;&gt;&lt;code&gt;02977f2&lt;/code&gt;&lt;/a&gt; Docs: Clarify &lt;code&gt;eslint:recommended&lt;/code&gt; semver policy (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12429&quot;&gt;#12429&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97045ae0805e6503887eef0b131dcb9e70b6d185&quot;&gt;&lt;code&gt;97045ae&lt;/code&gt;&lt;/a&gt; Docs: Fixes object type for &lt;code&gt;rules&lt;/code&gt; in “Use a Plugin” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12409&quot;&gt;#12409&lt;/a&gt;) (Daisy Develops)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24ca088fdc901feef8f10b050414fbde64b55c7d&quot;&gt;&lt;code&gt;24ca088&lt;/code&gt;&lt;/a&gt; Docs: Fix typo in v6 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12412&quot;&gt;#12412&lt;/a&gt;) (Benjamim Sonntag)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/84467c07461cc47ee43807ba9014e13700473c5c&quot;&gt;&lt;code&gt;84467c0&lt;/code&gt;&lt;/a&gt; Docs: fix wrong &lt;a href=&quot;https://eslint.org/docs/rules/max-depth&quot;&gt;max-depth&lt;/a&gt; example (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11991&quot;&gt;#11991&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12358&quot;&gt;#12358&lt;/a&gt;) (Gabriel R Sezefredo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/364234262efabd91fa8bd53161d9d3e1e37e7944&quot;&gt;&lt;code&gt;3642342&lt;/code&gt;&lt;/a&gt; Docs: Fix minor formatting/grammar errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12371&quot;&gt;#12371&lt;/a&gt;) (cherryblossom000)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c47fa0dfc76211b3b0e5649c63acdd9606ce0eca&quot;&gt;&lt;code&gt;c47fa0d&lt;/code&gt;&lt;/a&gt; Docs: Fix missing word in sentence (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12361&quot;&gt;#12361&lt;/a&gt;) (Dan Boulet)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/561093fc4267a4ae317d63bc9f103020fad88802&quot;&gt;&lt;code&gt;561093f&lt;/code&gt;&lt;/a&gt; Upgrade: bump inquirer to ^7.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12440&quot;&gt;#12440&lt;/a&gt;) (Joe Graham)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/923a8cb752b8dee1e622c5fd36f3f53288e30602&quot;&gt;&lt;code&gt;923a8cb&lt;/code&gt;&lt;/a&gt; Chore: Fix lint failure in JSDoc comment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12489&quot;&gt;#12489&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5382d6e4eb1344f537b6f107535269e9939fcb8&quot;&gt;&lt;code&gt;e5382d6&lt;/code&gt;&lt;/a&gt; Chore: Remove unused parameter in &lt;a href=&quot;https://eslint.org/docs/rules/dot-location&quot;&gt;dot-location&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12464&quot;&gt;#12464&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/61749c94bd8a2ebcdfb89e0cd48c4a029a945079&quot;&gt;&lt;code&gt;61749c9&lt;/code&gt;&lt;/a&gt; Chore: Provide debug log for parser errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12474&quot;&gt;#12474&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb633b2bbd0a390b247047524fdd1f612dbab803&quot;&gt;&lt;code&gt;fb633b2&lt;/code&gt;&lt;/a&gt; Chore: Add a script for testing with more control (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12444&quot;&gt;#12444&lt;/a&gt;) (Eric Wang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b094008fb196dc1de5b4c27b7dbf0bcbb4b7b352&quot;&gt;&lt;code&gt;b094008&lt;/code&gt;&lt;/a&gt; Chore: update version parameter name (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12402&quot;&gt;#12402&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5637badd42f087d115f81575b832097fe6fe554&quot;&gt;&lt;code&gt;e5637ba&lt;/code&gt;&lt;/a&gt; Chore: enable jsdoc/require-description (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12365&quot;&gt;#12365&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ffb22f61cf1622511a7fe42b5ead7c3b216df5e&quot;&gt;&lt;code&gt;7ffb22f&lt;/code&gt;&lt;/a&gt; Chore: Clean up inline directive parsing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12375&quot;&gt;#12375&lt;/a&gt;) (Jordan Eldredge)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8108f49f9fa0c2de80b3b66c847551beff585951&quot;&gt;&lt;code&gt;8108f49&lt;/code&gt;&lt;/a&gt; Chore: enable additional eslint-plugin-jsdoc rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12336&quot;&gt;#12336&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b718d2e6c9fe3fc56aa7cfc68b1a40b5cd8a7c01&quot;&gt;&lt;code&gt;b718d2e&lt;/code&gt;&lt;/a&gt; Chore: update issue template with --eslint-fix flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12352&quot;&gt;#12352&lt;/a&gt;) (James George)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.5.1 released</title>
    <link href="https://eslint.org/blog/2019/09/eslint-v6.5.1-released/"/>
    <updated>2019-09-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/09/eslint-v6.5.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/447ac877e8ca2858d61b1e983f72d39e3e2ca74d&quot;&gt;&lt;code&gt;447ac87&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-rename&quot;&gt;no-useless-rename&lt;/a&gt; handles ExperimentalRestProperty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12335&quot;&gt;#12335&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12339&quot;&gt;#12339&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d3d7d9cdd83a7f0e035c95f716a91b9ecc4868b&quot;&gt;&lt;code&gt;0d3d7d9&lt;/code&gt;&lt;/a&gt; Docs: fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/no-magic-numbers&quot;&gt;no-magic-numbers&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12345&quot;&gt;#12345&lt;/a&gt;) (Josiah Rooney)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.5.0 released</title>
    <link href="https://eslint.org/blog/2019/09/eslint-v6.5.0-released/"/>
    <updated>2019-09-29T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/09/eslint-v6.5.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We have added a new &lt;code&gt;--env-info&lt;/code&gt; CLI option, which provides a lot of information that is useful for GitHub issues.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;&lt;code&gt;use-isnan&lt;/code&gt;&lt;/a&gt; rule supports a new option, &lt;code&gt;enforceForSwitchCase&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; rule now supports JSXFragment nodes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition, many rules that removed comments during autofix have been modified to avoid removing comments. Please open an issue if you find any more cases that need to be fixed.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7894ebb43523152d36720efa770bb1fe8b58c07&quot;&gt;&lt;code&gt;a7894eb&lt;/code&gt;&lt;/a&gt; New: add --env-info flag to CLI (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12270&quot;&gt;#12270&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/73596cbdf0a12e2878b2994783f9b969b0c5fbeb&quot;&gt;&lt;code&gt;73596cb&lt;/code&gt;&lt;/a&gt; Update: Add enforceForSwitchCase option to &lt;a href=&quot;https://eslint.org/docs/rules/use-isnan&quot;&gt;use-isnan&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12106&quot;&gt;#12106&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/334ca7c8b9c18ac097849c1cefaa43097a4e51dc&quot;&gt;&lt;code&gt;334ca7c&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-rename&quot;&gt;no-useless-rename&lt;/a&gt; also reports default values (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12301&quot;&gt;#12301&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12322&quot;&gt;#12322&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41bfe919c06932b7e58cd9ead20157e06656160a&quot;&gt;&lt;code&gt;41bfe91&lt;/code&gt;&lt;/a&gt; Update: Fix handling of chained new expressions in &lt;a href=&quot;https://eslint.org/docs/rules/new-parens&quot;&gt;new-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12303&quot;&gt;#12303&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/11ae6fcb5d5503e5dea41c02780369efe51f0bb9&quot;&gt;&lt;code&gt;11ae6fc&lt;/code&gt;&lt;/a&gt; Update: Fix call, new and member expressions in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12302&quot;&gt;#12302&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d4f9a16af7e00021e2ed63823d9c2f149bc985d6&quot;&gt;&lt;code&gt;d4f9a16&lt;/code&gt;&lt;/a&gt; Update: add support for JSXFragments in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12208&quot;&gt;#12208&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12210&quot;&gt;#12210&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d592a248d67920f7200925c003f10853d29f1f8d&quot;&gt;&lt;code&gt;d592a24&lt;/code&gt;&lt;/a&gt; Fix: exclude &lt;code&gt;&#92;u000d&lt;/code&gt; so new line won’t convert to text (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12027&quot;&gt;#12027&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12031&quot;&gt;#12031&lt;/a&gt;) (zamboney)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e85d27af427d6185ac553a0d801b5103153426d4&quot;&gt;&lt;code&gt;e85d27a&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-regex-spaces&quot;&gt;no-regex-spaces&lt;/a&gt; false positives and invalid autofix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12226&quot;&gt;#12226&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12231&quot;&gt;#12231&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b349bf79ad56dded826bc99cb52c3551af34fa63&quot;&gt;&lt;code&gt;b349bf7&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-named-capture-group&quot;&gt;prefer-named-capture-group&lt;/a&gt; incorrect locations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12233&quot;&gt;#12233&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12247&quot;&gt;#12247&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7dc1ea9a1b9a21daaffcf712ba9c0e91af81b906&quot;&gt;&lt;code&gt;7dc1ea9&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-return&quot;&gt;no-useless-return&lt;/a&gt; autofix removes comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12292&quot;&gt;#12292&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e68677ec0aaf060a071ecf71e4af954dddb6af0&quot;&gt;&lt;code&gt;0e68677&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-bind&quot;&gt;no-extra-bind&lt;/a&gt; autofix removes comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12293&quot;&gt;#12293&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ad7e864303e56a39c89569d50c6caf80752ee21&quot;&gt;&lt;code&gt;6ad7e86&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-label&quot;&gt;no-extra-label&lt;/a&gt; autofix removes comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12298&quot;&gt;#12298&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acec201f06df780791179ad92cfc484f9b6d23d4&quot;&gt;&lt;code&gt;acec201&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-undef-init&quot;&gt;no-undef-init&lt;/a&gt; autofix removes comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12299&quot;&gt;#12299&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d89390b75e3e9993f347387a49b0ac5550f45c7f&quot;&gt;&lt;code&gt;d89390b&lt;/code&gt;&lt;/a&gt; Fix: use async reading of stdin in bin/eslint.js (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12212&quot;&gt;#12212&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12230&quot;&gt;#12230&lt;/a&gt;) (Barrie Treloar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8316e7be5a9429513d7ecf2ee2afc40ab4415b8f&quot;&gt;&lt;code&gt;8316e7b&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-rename&quot;&gt;no-useless-rename&lt;/a&gt; autofix removes comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12300&quot;&gt;#12300&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5537b2ed0b0b5e51a34c22cdd4ebfd024eaea3d&quot;&gt;&lt;code&gt;f5537b2&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-numeric-literals&quot;&gt;prefer-numeric-literals&lt;/a&gt; autofix removes comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12313&quot;&gt;#12313&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b86167e6f053e4a72bf68ebc79db53903f7f8c3&quot;&gt;&lt;code&gt;9b86167&lt;/code&gt;&lt;/a&gt; Docs: Add new ES environments to Configuring ESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12289&quot;&gt;#12289&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9aeab21a71c6743f51163b7a8fdf4f0cbfcdbde&quot;&gt;&lt;code&gt;c9aeab2&lt;/code&gt;&lt;/a&gt; Docs: Add supported ECMAScript version to README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12290&quot;&gt;#12290&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c6bf8ea9c8a8f94746f980bd5bea0a8c5c4d6b7&quot;&gt;&lt;code&gt;2c6bf8e&lt;/code&gt;&lt;/a&gt; Docs: English fix (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12306&quot;&gt;#12306&lt;/a&gt;) (Daniel Nixon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e202ca2228846e6226aa8dd99c614d572fb86a8&quot;&gt;&lt;code&gt;2e202ca&lt;/code&gt;&lt;/a&gt; Docs: fix links in &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12288&quot;&gt;#12288&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e39c6318af0fd27edd5fd2aaf2b24a3e204005dd&quot;&gt;&lt;code&gt;e39c631&lt;/code&gt;&lt;/a&gt; Docs: add example for CLIEngine#executeOnText 3rd arg (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12286&quot;&gt;#12286&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9984c3e27c92de76b8c05a58525dbcea12b10b83&quot;&gt;&lt;code&gt;9984c3e&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/160b7c46b556ccb6023eb411a8be8801a4bda6df&quot;&gt;&lt;code&gt;160b7c4&lt;/code&gt;&lt;/a&gt; Chore: add autofix npm script (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12330&quot;&gt;#12330&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/04b6adb7f1bcb2b6cb3fa377b1ca4cecd810630e&quot;&gt;&lt;code&gt;04b6adb&lt;/code&gt;&lt;/a&gt; Chore: enable eslint-plugin-jsdoc (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/11146&quot;&gt;#11146&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12332&quot;&gt;#12332&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29c12f18726a3afb21fc89ab1bdacc6972d49e68&quot;&gt;&lt;code&gt;29c12f1&lt;/code&gt;&lt;/a&gt; Chore: cache results in runtime-info (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12320&quot;&gt;#12320&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9fc695d77c19cd5ecb3f0e97e1ea124c8543409&quot;&gt;&lt;code&gt;f9fc695&lt;/code&gt;&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/default-param-last&quot;&gt;default-param-last&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12244&quot;&gt;#12244&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.4.0 released</title>
    <link href="https://eslint.org/blog/2019/09/eslint-v6.4.0-released/"/>
    <updated>2019-09-13T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/09/eslint-v6.4.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Three new rules: &lt;a href=&quot;https://eslint.org/docs/rules/no-import-assign&quot;&gt;no-import-assign&lt;/a&gt;, &lt;a href=&quot;https://eslint.org/docs/rules/prefer-regex-literals&quot;&gt;prefer-regex-literals&lt;/a&gt;, &lt;a href=&quot;https://eslint.org/docs/rules/default-param-last&quot;&gt;default-param-last&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/accessor-pairs&quot;&gt;accessor-pairs&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;computed-property-spacing&lt;/a&gt; rules has been updated with a new option &lt;code&gt;enforceForClassMembers&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c921c6dfd7ddfb0308c8103e53d32c1241475f0&quot;&gt;&lt;code&gt;1c921c6&lt;/code&gt;&lt;/a&gt; New: add &lt;a href=&quot;https://eslint.org/docs/rules/no-import-assign&quot;&gt;no-import-assign&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12237&quot;&gt;#12237&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12252&quot;&gt;#12252&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3be04fd6a4e7b3f5a5ecb845a29cf29b71fe2dfb&quot;&gt;&lt;code&gt;3be04fd&lt;/code&gt;&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/prefer-regex-literals&quot;&gt;prefer-regex-literals&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12238&quot;&gt;#12238&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12254&quot;&gt;#12254&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0313441d016c8aa0674c135f9da67a676e766ec5&quot;&gt;&lt;code&gt;0313441&lt;/code&gt;&lt;/a&gt; New: add rule &lt;a href=&quot;https://eslint.org/docs/rules/default-param-last&quot;&gt;default-param-last&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11361&quot;&gt;#11361&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12188&quot;&gt;#12188&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/540296fcecd232a09dc873a5a22f5839b59b7842&quot;&gt;&lt;code&gt;540296f&lt;/code&gt;&lt;/a&gt; Update: enforceForClassMembers option to &lt;a href=&quot;https://eslint.org/docs/rules/accessor-pairs&quot;&gt;accessor-pairs&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12063&quot;&gt;#12063&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12192&quot;&gt;#12192&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3c2334646eae9287d5be9e457d041e445efb512&quot;&gt;&lt;code&gt;d3c2334&lt;/code&gt;&lt;/a&gt; Update: flag nested block with declaration as error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12193&quot;&gt;#12193&lt;/a&gt;) (David Waller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b2498d284b9c30ed1543429c2f45d9014e12fe22&quot;&gt;&lt;code&gt;b2498d2&lt;/code&gt;&lt;/a&gt; Update: Fix handling of property names in &lt;a href=&quot;https://eslint.org/docs/rules/no-self-assign&quot;&gt;no-self-assign&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12105&quot;&gt;#12105&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ee61b06715fcc750be2c923034a1e59ba663287&quot;&gt;&lt;code&gt;1ee61b0&lt;/code&gt;&lt;/a&gt; Update: enforceForClassMembers &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;computed-property-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12049&quot;&gt;#12049&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12214&quot;&gt;#12214&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db2a29beb0fa28183f65bf9e659c66c03a8918b5&quot;&gt;&lt;code&gt;db2a29b&lt;/code&gt;&lt;/a&gt; Update: indentation of comment followed by semicolon (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12232&quot;&gt;#12232&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12243&quot;&gt;#12243&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/37c0fdeb87b92a0b779b125adf45535b79b65757&quot;&gt;&lt;code&gt;37c0fde&lt;/code&gt;&lt;/a&gt; Update: Report global Atomics calls in &lt;a href=&quot;https://eslint.org/docs/rules/no-obj-calls&quot;&gt;no-obj-calls&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12234&quot;&gt;#12234&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12258&quot;&gt;#12258&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e38f5fdfc786363a3eae642f1a69a8725600aa61&quot;&gt;&lt;code&gt;e38f5fd&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-octal-escape&quot;&gt;no-octal-escape&lt;/a&gt; false negatives after &#92;0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12079&quot;&gt;#12079&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7621f5d2aa7d87e798b75ca47d6889c280597e99&quot;&gt;&lt;code&gt;7621f5d&lt;/code&gt;&lt;/a&gt; Update: add more specific linting messages to &lt;a href=&quot;https://eslint.org/docs/rules/space-in-parens&quot;&gt;space-in-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11121&quot;&gt;#11121&lt;/a&gt;) (Che Fisher)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f826eabbeecddb047f58f4e7308a14c18148d369&quot;&gt;&lt;code&gt;f826eab&lt;/code&gt;&lt;/a&gt; Fix: Allow line comment exception in &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-spacing&quot;&gt;object-curly-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11902&quot;&gt;#11902&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12216&quot;&gt;#12216&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae17d1ca59dd466aa64da0680ec2453c2dc3b80d&quot;&gt;&lt;code&gt;ae17d1c&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;no-sequences&lt;/a&gt; is reporting incorrect locations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12241&quot;&gt;#12241&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/365331a42e22af5a77ac9cfa9673d6a8f653eb5a&quot;&gt;&lt;code&gt;365331a&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; providing invalid fixes for typescript (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12260&quot;&gt;#12260&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/985c9e5eba351965a8a1491a41dbdcc78154b8f4&quot;&gt;&lt;code&gt;985c9e5&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/space-before-function-paren&quot;&gt;space-before-function-paren&lt;/a&gt; autofix removes comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12259&quot;&gt;#12259&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12264&quot;&gt;#12264&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/01da7d04c4e5a7376cf241ec02db7971726a1bf9&quot;&gt;&lt;code&gt;01da7d0&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/eqeqeq&quot;&gt;eqeqeq&lt;/a&gt; rule reports incorrect locations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12265&quot;&gt;#12265&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a41fdc07404a7675d14183fab245fb8f49dcb858&quot;&gt;&lt;code&gt;a41fdc0&lt;/code&gt;&lt;/a&gt; Fix: Remove autofixer for &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-negation&quot;&gt;no-unsafe-negation&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12157&quot;&gt;#12157&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21eb9044135c01b6c12188517bba840614483fc6&quot;&gt;&lt;code&gt;21eb904&lt;/code&gt;&lt;/a&gt; Fix: basePath of OverrideTester (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12032&quot;&gt;#12032&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12205&quot;&gt;#12205&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b1a13fa0de8360586857f3ced8da514c971297d&quot;&gt;&lt;code&gt;2b1a13f&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;no-extra-boolean-cast&lt;/a&gt; reports wrong negation node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11324&quot;&gt;#11324&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12197&quot;&gt;#12197&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e10eebab4abd193dee697c4de7fb2d95bbab2d8c&quot;&gt;&lt;code&gt;e10eeba&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;quotes&lt;/a&gt; autofix produces syntax error with octal escape sequences (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12118&quot;&gt;#12118&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e915fffb6089a23ff1cae926cc607f9b87dc1819&quot;&gt;&lt;code&gt;e915fff&lt;/code&gt;&lt;/a&gt; Docs: Improve examples and clarify default option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12067&quot;&gt;#12067&lt;/a&gt;) (Yuping Zuo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/520c92270eed6e90c1a796e8af275980f01705e0&quot;&gt;&lt;code&gt;520c922&lt;/code&gt;&lt;/a&gt; Docs: Added naming convention details to plugin usage (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12202&quot;&gt;#12202&lt;/a&gt;) (Henrique Barcelos)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/319e4d8386ea846928f0f906c251b46043a53491&quot;&gt;&lt;code&gt;319e4d8&lt;/code&gt;&lt;/a&gt; Docs: adding finally example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12256&quot;&gt;#12256&lt;/a&gt;) (Jens Melgaard)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d52328f012f3704c7d1ce39427e63f80531c7979&quot;&gt;&lt;code&gt;d52328f&lt;/code&gt;&lt;/a&gt; Docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-sequences&quot;&gt;no-sequences&lt;/a&gt; &lt;code&gt;with&lt;/code&gt; examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12239&quot;&gt;#12239&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a0a9746724ccd22c721ddc1b25c566aa9acea154&quot;&gt;&lt;code&gt;a0a9746&lt;/code&gt;&lt;/a&gt; Docs: Fix link in &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12196&quot;&gt;#12196&lt;/a&gt;) (Timo Tijhof)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Indeed donates $10,000 to ESLint</title>
    <link href="https://eslint.org/blog/2019/09/indeed-donates-10000-to-eslint/"/>
    <updated>2019-09-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/09/indeed-donates-10000-to-eslint/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog-covers/sponsorship-indeed.png&quot; alt=&quot;Indeed Donates to ESLint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We are happy to share that &lt;a href=&quot;https://indeed.com/&quot;&gt;Indeed&lt;/a&gt; has donated $10,000 to the ESLint project as part of their &lt;a href=&quot;https://engineering.indeedblog.com/blog/2019/07/foss-fund-six-months-in/&quot;&gt;FOSS Contributor Fund&lt;/a&gt;. The FOSS Contributor Fund is a unique idea, where all Indeed employees may nominate an open source project to receive a one-time donation, and any employee who has contributed to an open source project during that month gets to vote on the nominees. We are honored to be one of the projects that Indeed employees chose to support.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Most JavaScript projects directly or transitively depend on ESLint. An Indeed employee nominated ESLint to receive a donation from the FOSS Contributor Fund, and their colleagues clearly agreed. We’re happy to support the open source technologies that allow us to develop, protect, and maintain the digital infrastructure that supports our products and helps people get jobs.” – Duane O’Brien, Head of Open Source, Indeed&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We are grateful to Duane for reaching out to discuss the details of their contribution, and to the employees at Indeed who voted to support ESLint. Donations such as this allow the all-volunteer ESLint team to continue to make project improvements going forward.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.3.0 released</title>
    <link href="https://eslint.org/blog/2019/08/eslint-v6.3.0-released/"/>
    <updated>2019-08-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/08/eslint-v6.3.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;eslint --init&lt;/code&gt; can automatically configure TypeScript support for ESLint in a new project.&lt;/li&gt;
&lt;li&gt;The new &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#report-unused-eslint-disable-comments&quot;&gt;&lt;code&gt;reportUnusedDisableDirectives&lt;/code&gt;&lt;/a&gt; config option mirrors the existing &lt;code&gt;--report-unused-disable-directives&lt;/code&gt; CLI flag.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52e2cf50b35d57fb8466e0bcd0581eff1590fb4c&quot;&gt;&lt;code&gt;52e2cf5&lt;/code&gt;&lt;/a&gt; New: reportUnusedDisableDirectives in config (refs &lt;a href=&quot;https://github.com/eslint/rfcs/issues/22&quot;&gt;eslint/rfcs#22&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12151&quot;&gt;#12151&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c0b70b869c16647f7af6de9d5c5479fc19f49db&quot;&gt;&lt;code&gt;4c0b70b&lt;/code&gt;&lt;/a&gt; New: support TypeScript at config initializer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11789&quot;&gt;#11789&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12172&quot;&gt;#12172&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/020f9526b618a191566acea3e17e20815d484c58&quot;&gt;&lt;code&gt;020f952&lt;/code&gt;&lt;/a&gt; Update: enforceForSequenceExpressions to &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11916&quot;&gt;#11916&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12142&quot;&gt;#12142&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aab1b840f9cffb2a76a5c9fe1852961be71dc184&quot;&gt;&lt;code&gt;aab1b84&lt;/code&gt;&lt;/a&gt; Fix: reset to the default color (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12174&quot;&gt;#12174&lt;/a&gt;) (Ricardo Gobbo de Souza)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4009d39aa59451510aa24911e758d664f216289a&quot;&gt;&lt;code&gt;4009d39&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;yoda&lt;/a&gt; rule produces invalid autofix with preceding yield (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12166&quot;&gt;#12166&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/febb6605d350c936d64cb73e694482cfbb20b29c&quot;&gt;&lt;code&gt;febb660&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;no-extra-boolean-cast&lt;/a&gt; invalid autofix with yield before negation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12164&quot;&gt;#12164&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/197f4432fca70a574028e5568c48afad12213224&quot;&gt;&lt;code&gt;197f443&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/func-name-matching&quot;&gt;func-name-matching&lt;/a&gt; crash on descriptor-like arguments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12100&quot;&gt;#12100&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/644ce3306748a33b74fc6a94be0267c2c9f19348&quot;&gt;&lt;code&gt;644ce33&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-self-assign&quot;&gt;no-self-assign&lt;/a&gt; false positive with rest and spread in array (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12099&quot;&gt;#12099&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a81d2636ce41fb34d6826c2e9857814e11cb9c30&quot;&gt;&lt;code&gt;a81d263&lt;/code&gt;&lt;/a&gt; Fix: fix message of &lt;a href=&quot;https://eslint.org/docs/rules/function-paren-newline&quot;&gt;function-paren-newline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12136&quot;&gt;#12136&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/00d2c5be9a89efd90135c4368a9589f33df3f7ba&quot;&gt;&lt;code&gt;00d2c5b&lt;/code&gt;&lt;/a&gt; Docs: corrected class extension example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12176&quot;&gt;#12176&lt;/a&gt;) (Marius M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6abc7b72dfb824a372379708ca39340b2c7abc03&quot;&gt;&lt;code&gt;6abc7b7&lt;/code&gt;&lt;/a&gt; Docs: Document the exception in &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-negation&quot;&gt;no-unsafe-negation&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12161&quot;&gt;#12161&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0acdefb97f35bb09db2910540c70dc377a01ad62&quot;&gt;&lt;code&gt;0acdefb&lt;/code&gt;&lt;/a&gt; Chore: refactor code (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12113&quot;&gt;#12113&lt;/a&gt;) (James George)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/94e39d9f782f45db86a079e07508d63040118ef1&quot;&gt;&lt;code&gt;94e39d9&lt;/code&gt;&lt;/a&gt; Chore: use GitHub Actions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12144&quot;&gt;#12144&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e88f305df9d454868624c559fd93b981a680c215&quot;&gt;&lt;code&gt;e88f305&lt;/code&gt;&lt;/a&gt; Chore: support es2020 in fuzz (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12180&quot;&gt;#12180&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/31e542819967b2aa1191e1abaa1c4a49fddbe3cf&quot;&gt;&lt;code&gt;31e5428&lt;/code&gt;&lt;/a&gt; Chore: Fix wrong error object keys in test files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12162&quot;&gt;#12162&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/77f8ed1ad9656c526217ce54a6717fa232d522c8&quot;&gt;&lt;code&gt;77f8ed1&lt;/code&gt;&lt;/a&gt; Chore: update blogpost template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12154&quot;&gt;#12154&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.2.2 released</title>
    <link href="https://eslint.org/blog/2019/08/eslint-v6.2.2-released/"/>
    <updated>2019-08-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/08/eslint-v6.2.2-released/</id>
    <content type="html">&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b809e72221bc658e5a42bfd4b8723d3771571f9e&quot;&gt;&lt;code&gt;b809e72&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e0b784b922051c2a1d39dd8160382114b645800&quot;&gt;&lt;code&gt;0e0b784&lt;/code&gt;&lt;/a&gt; Upgrade: espree@^6.1.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12158&quot;&gt;#12158&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.2.1 released</title>
    <link href="https://eslint.org/blog/2019/08/eslint-v6.2.1-released/"/>
    <updated>2019-08-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/08/eslint-v6.2.1-released/</id>
    <content type="html">&lt;p&gt;This release includes a &lt;a href=&quot;https://github.com/mysticatea/eslint-utils/security/advisories/GHSA-3gx7-xhv7-5mx3&quot;&gt;security fix&lt;/a&gt; in the &lt;code&gt;eslint-utils&lt;/code&gt; package, which is a dependency of ESLint. The security issue affects users that run ESLint on untrusted source code (e.g. servers that lint the user’s project as a service). By taking advantage of a bug in a certain piece of analysis, a user could supply malicious source text that causes arbitrary code to be executed in the linting process.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This issue affects versions of &lt;code&gt;eslint-utils&lt;/code&gt; between v1.2.0 and v1.4.0.&lt;/li&gt;
&lt;li&gt;ESLint versions between v5.3.0 and v6.2.0 are potentially vulnerable (their allowed dependencies include vulnerable &lt;code&gt;eslint-utils&lt;/code&gt; versions). However, these versions of ESLint can still be used safely if the &lt;code&gt;eslint-utils&lt;/code&gt; dependency is updated to the latest version (e.g. by updating &lt;code&gt;eslint-utils&lt;/code&gt; in a lockfile, or purging &lt;code&gt;node_modules&lt;/code&gt; and reinstalling).&lt;/li&gt;
&lt;li&gt;ESLint v6.2.1 is not vulnerable to the issue.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4aeeeedb656ee3519ea82ebf0cb41ca801215046&quot;&gt;&lt;code&gt;4aeeeed&lt;/code&gt;&lt;/a&gt; Docs: update docs for ecmaVersion 2020 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12120&quot;&gt;#12120&lt;/a&gt;) (silverwind)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6886148d1f528659ec3e125f61ef7a5f4c67556d&quot;&gt;&lt;code&gt;6886148&lt;/code&gt;&lt;/a&gt; Docs: Add duplicate keys limitation to &lt;a href=&quot;https://eslint.org/docs/rules/accessor-pairs&quot;&gt;accessor-pairs&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12124&quot;&gt;#12124&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c021b5917b3aa3c578ffe3972106d0a6bcf0838&quot;&gt;&lt;code&gt;8c021b5&lt;/code&gt;&lt;/a&gt; Upgrade: eslint-utils 1.4.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12131&quot;&gt;#12131&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.2.0 released</title>
    <link href="https://eslint.org/blog/2019/08/eslint-v6.2.0-released/"/>
    <updated>2019-08-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/08/eslint-v6.2.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;This release adds support for ES2020 syntax, which includes support for Dynamic Imports and &lt;code&gt;BigInt&lt;/code&gt;. This can be enabled using &lt;code&gt;ecmaVersion: 2020&lt;/code&gt; in your configuration file.&lt;/li&gt;
&lt;li&gt;A new rule, &lt;code&gt;function-call-argument-newline&lt;/code&gt;, has been added.&lt;/li&gt;
&lt;li&gt;Many bug fixes thanks to &lt;a href=&quot;https://github.com/mdjermanovic&quot;&gt;@mdjermanovic&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afd8012c2797f2f5bf3c360cb241ea2ba6e1a489&quot;&gt;&lt;code&gt;afd8012&lt;/code&gt;&lt;/a&gt; New: noInlineConfig setting (refs &lt;a href=&quot;https://github.com/eslint/rfcs/pull/22&quot;&gt;eslint/rfcs#22&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12091&quot;&gt;#12091&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8cd00b308987e0db0bdb2e242bf13b2b07b350bd&quot;&gt;&lt;code&gt;8cd00b3&lt;/code&gt;&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/function-call-argument-newline&quot;&gt;function-call-argument-newline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12024&quot;&gt;#12024&lt;/a&gt;) (finico)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fee6acbe13cecd4c028e681e185fc6a6d6ba9452&quot;&gt;&lt;code&gt;fee6acb&lt;/code&gt;&lt;/a&gt; Update: support bigint and dynamic import (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/11803&quot;&gt;#11803&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11983&quot;&gt;#11983&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3d12378221961439c27ddae0ecda9845ac575107&quot;&gt;&lt;code&gt;3d12378&lt;/code&gt;&lt;/a&gt; Update: Fix &lt;a href=&quot;https://eslint.org/docs/rules/accessor-pairs&quot;&gt;accessor-pairs&lt;/a&gt; to enforce pairs per property in literals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12062&quot;&gt;#12062&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2dc23b81e54defbce7a70a7f26c2e4c7b692cf58&quot;&gt;&lt;code&gt;2dc23b8&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-dupe-keys&quot;&gt;no-dupe-keys&lt;/a&gt; false negatives on empty string names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12069&quot;&gt;#12069&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d642150fe016608e71a1df2a72960e915b3cfbad&quot;&gt;&lt;code&gt;d642150&lt;/code&gt;&lt;/a&gt; Update: Check empty string property names in &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;sort-keys&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12073&quot;&gt;#12073&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1aff8fc4f9394cd9126654a55f7f3a43ab1cf8f0&quot;&gt;&lt;code&gt;1aff8fc&lt;/code&gt;&lt;/a&gt; Update: warn about mixing ternary and logical operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11704&quot;&gt;#11704&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12001&quot;&gt;#12001&lt;/a&gt;) (Karthik Priyadarshan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fbec99ea3e39316791685652c66e522d698f52d8&quot;&gt;&lt;code&gt;fbec99e&lt;/code&gt;&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/class-methods-use-this&quot;&gt;class-methods-use-this&lt;/a&gt; false negatives with exceptMethods (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12077&quot;&gt;#12077&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5e0cc40795f175692acb05daaadb91e9e5ae5d3&quot;&gt;&lt;code&gt;f5e0cc4&lt;/code&gt;&lt;/a&gt; Update: Check computed method keys in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11973&quot;&gt;#11973&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58317673210e48be3975e317c2c566fae155c94f&quot;&gt;&lt;code&gt;5831767&lt;/code&gt;&lt;/a&gt; Update: report location of &lt;a href=&quot;https://eslint.org/docs/rules/func-names&quot;&gt;func-names&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/12022&quot;&gt;#12022&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12028&quot;&gt;#12028&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/30ebf929f60684520b1201c1adfd86214c19d614&quot;&gt;&lt;code&gt;30ebf92&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-template&quot;&gt;prefer-template&lt;/a&gt; autofix produces syntax error with octal escapes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12085&quot;&gt;#12085&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13c3988a4001ae368ea7b6c8d3dd0abfa7c6cf64&quot;&gt;&lt;code&gt;13c3988&lt;/code&gt;&lt;/a&gt; Fix: Check literal type explicitly in &lt;a href=&quot;https://eslint.org/docs/rules/dot-notation&quot;&gt;dot-notation&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12095&quot;&gt;#12095&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e5ceca4d2284b55a2292a1d3de9aa4cdf6fa213&quot;&gt;&lt;code&gt;3e5ceca&lt;/code&gt;&lt;/a&gt; Fix: Handle empty string property names in getFunctionNameWithKind (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12104&quot;&gt;#12104&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a043ffbb864fc65baeb16fe5668435e3b7cfe34&quot;&gt;&lt;code&gt;9a043ff&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-duplicate-case&quot;&gt;no-duplicate-case&lt;/a&gt; false positives on Object.prototype keys (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12107&quot;&gt;#12107&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4cb78774f6cc687a3c8701462f8c7f7b587ecaf0&quot;&gt;&lt;code&gt;4cb7877&lt;/code&gt;&lt;/a&gt; Fix: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; ignores some nodes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11909&quot;&gt;#11909&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19ab6666e8e4142a183bdee2be96e5bafbac0e21&quot;&gt;&lt;code&gt;19ab666&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;yoda&lt;/a&gt; exceptRange false positives on empty string property names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12071&quot;&gt;#12071&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acce6de940e2b089ff5ba59e4518a54af1682d5e&quot;&gt;&lt;code&gt;acce6de&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/class-methods-use-this&quot;&gt;class-methods-use-this&lt;/a&gt; reports ‘undefined’ names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12103&quot;&gt;#12103&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/92ec2cb1731b7b6e0ac66336d583fbb782504290&quot;&gt;&lt;code&gt;92ec2cb&lt;/code&gt;&lt;/a&gt; Fix: Allow bind call with a single spread element in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-bind&quot;&gt;no-extra-bind&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12088&quot;&gt;#12088&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfdb0c97003fc0e045aa6ed10b177c35305a6e46&quot;&gt;&lt;code&gt;bfdb0c9&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;no-extra-boolean-cast&lt;/a&gt; invalid autofix for Boolean() without args (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12076&quot;&gt;#12076&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf31dab5d5982151e0cfcc32879e69a83180ec70&quot;&gt;&lt;code&gt;cf31dab&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;no-restricted-syntax&lt;/a&gt; - correct the schema (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12051&quot;&gt;#12051&lt;/a&gt;) (Brad Zacher)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/01d38ce2faf0abbc9dd5d25694baeee131036165&quot;&gt;&lt;code&gt;01d38ce&lt;/code&gt;&lt;/a&gt; Docs: Remove TDZ scope from the scope manager interface documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12054&quot;&gt;#12054&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/11be2f8513bd61499f6247392a33ac0a26901c90&quot;&gt;&lt;code&gt;11be2f8&lt;/code&gt;&lt;/a&gt; Docs: do not recommend global-installed usage (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12016&quot;&gt;#12016&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb08b7c9d28bc68864eb940e26df274059228b6a&quot;&gt;&lt;code&gt;fb08b7c&lt;/code&gt;&lt;/a&gt; Docs: Remove readonly/writable global logic from &lt;a href=&quot;https://eslint.org/docs/rules/no-undef&quot;&gt;no-undef&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11963&quot;&gt;#11963&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12053&quot;&gt;#12053&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d9614388df8cfb977842ed7ac4725d76a3e05df3&quot;&gt;&lt;code&gt;d961438&lt;/code&gt;&lt;/a&gt; Docs: Fix Incorrect Documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12045&quot;&gt;#12045&lt;/a&gt;) (Michael Miceli)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d90183ff6757cff854f4ca4d25b835143dfb4b21&quot;&gt;&lt;code&gt;d90183f&lt;/code&gt;&lt;/a&gt; Docs: add a case to &lt;a href=&quot;https://eslint.org/docs/rules/func-names&quot;&gt;func-names&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12038&quot;&gt;#12038&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8a5b62de2ae574f416c0f8ad91205da9b1837275&quot;&gt;&lt;code&gt;8a5b62d&lt;/code&gt;&lt;/a&gt; Docs: no use eslint.linter in code example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12037&quot;&gt;#12037&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe631afee59641876598d19b1935967099cc6fa0&quot;&gt;&lt;code&gt;fe631af&lt;/code&gt;&lt;/a&gt; Chore: minor typo fix (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12112&quot;&gt;#12112&lt;/a&gt;) (James George)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/34ccc0cd81f495190e585c6efa8ae233d45bd3ed&quot;&gt;&lt;code&gt;34ccc0c&lt;/code&gt;&lt;/a&gt; Chore: Remove TDZ scope type condition from &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12055&quot;&gt;#12055&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.1.0 released</title>
    <link href="https://eslint.org/blog/2019/07/eslint-v6.1.0-released/"/>
    <updated>2019-07-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/07/eslint-v6.1.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b974fcbd3321ab382a914520018d4c051b2e5c62&quot;&gt;&lt;code&gt;b974fcb&lt;/code&gt;&lt;/a&gt; Update: Check computed property keys in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11952&quot;&gt;#11952&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/222d27c32a6d6d8828233b3b99e93ecefa94c603&quot;&gt;&lt;code&gt;222d27c&lt;/code&gt;&lt;/a&gt; Update: Add for-in and for-of checks for props in &lt;a href=&quot;https://eslint.org/docs/rules/no-param-reassign&quot;&gt;no-param-reassign&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11941&quot;&gt;#11941&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d08683e3c807f92daf266894093c70f8d5ac6afa&quot;&gt;&lt;code&gt;d08683e&lt;/code&gt;&lt;/a&gt; Fix: glob processing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11940&quot;&gt;#11940&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11986&quot;&gt;#11986&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfcf8b21011466b570b536ca31ec10fd228b3dca&quot;&gt;&lt;code&gt;bfcf8b2&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/dot-location&quot;&gt;dot-location&lt;/a&gt; errors with parenthesized objects (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11868&quot;&gt;#11868&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11933&quot;&gt;#11933&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79e8d099bbbebfa4d804484eeeeea9c074ede870&quot;&gt;&lt;code&gt;79e8d09&lt;/code&gt;&lt;/a&gt; Fix: add parens for sequence expr in &lt;a href=&quot;https://eslint.org/docs/rules/arrow-body-style&quot;&gt;arrow-body-style&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11917&quot;&gt;#11917&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11918&quot;&gt;#11918&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4c450febc9bd77b33f6473667afa9f955be6b71&quot;&gt;&lt;code&gt;e4c450f&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; autofix with &lt;code&gt;in&lt;/code&gt; in a for-loop init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11706&quot;&gt;#11706&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11848&quot;&gt;#11848&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2dafe2d288d1e0d353bb938d12a5da888091cfdb&quot;&gt;&lt;code&gt;2dafe2d&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;prefer-const&lt;/a&gt; produces invalid autofix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11699&quot;&gt;#11699&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11827&quot;&gt;#11827&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb475fd8c0bbfcb00340459966b6780f39ea87a7&quot;&gt;&lt;code&gt;cb475fd&lt;/code&gt;&lt;/a&gt; Fix: Cache file error handling on read-only file system. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11945&quot;&gt;#11945&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11946&quot;&gt;#11946&lt;/a&gt;) (Cuki)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6669f78a3dd305aef6191e7eea24fae2ae4fd2e8&quot;&gt;&lt;code&gt;6669f78&lt;/code&gt;&lt;/a&gt; Fix: --init with Vue.js failed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11970&quot;&gt;#11970&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11985&quot;&gt;#11985&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fb362093a65b99456a11029967d9ee0c31fd697&quot;&gt;&lt;code&gt;1fb3620&lt;/code&gt;&lt;/a&gt; Fix: creating of enabledGlobals object without prototype (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11929&quot;&gt;#11929&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11935&quot;&gt;#11935&lt;/a&gt;) (finico)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19335b8f47029b2f742d5507ba39484eaf68d07b&quot;&gt;&lt;code&gt;19335b8&lt;/code&gt;&lt;/a&gt; Fix: actual messageId and expected messageId are switched in rule tester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11928&quot;&gt;#11928&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/105c098f3cece8b83ab8d1566b8ea41dd94a60b9&quot;&gt;&lt;code&gt;105c098&lt;/code&gt;&lt;/a&gt; Docs: update docs for &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-spacing&quot;&gt;object-curly-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11634&quot;&gt;#11634&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12009&quot;&gt;#12009&lt;/a&gt;) (Chiawen Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89412c3cbc52e556dba590fa94e10bf40faf1fdf&quot;&gt;&lt;code&gt;89412c3&lt;/code&gt;&lt;/a&gt; Docs: Fixed a typo (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11999&quot;&gt;#11999&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12000&quot;&gt;#12000&lt;/a&gt;) (Eddie Olson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/776dae71f2f5c7b5f0650ea3c277eca26e324e41&quot;&gt;&lt;code&gt;776dae7&lt;/code&gt;&lt;/a&gt; Docs: fix wrong Node.js version in getting started (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11993&quot;&gt;#11993&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4448261f5d217d8a06eb0ef898401928b54a34e3&quot;&gt;&lt;code&gt;4448261&lt;/code&gt;&lt;/a&gt; Docs: some typos and optimization points (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11960&quot;&gt;#11960&lt;/a&gt;) (Jason Lee)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2f2db97c6d6a415b78ee7b3e8924853d465e757&quot;&gt;&lt;code&gt;c2f2db9&lt;/code&gt;&lt;/a&gt; Docs: Replace global true and false with writable and readonly in rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11956&quot;&gt;#11956&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b216e04fb0dd0a1a4d3730ebe4b24780020b09c&quot;&gt;&lt;code&gt;8b216e0&lt;/code&gt;&lt;/a&gt; Docs: Fix incorrect example comments for &lt;a href=&quot;https://eslint.org/docs/rules/unicode-bom&quot;&gt;unicode-bom&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11937&quot;&gt;#11937&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11938&quot;&gt;#11938&lt;/a&gt;) (Brandon Yeager)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5f1ccc9e2d07ad0acf149027ffc382021d54da1&quot;&gt;&lt;code&gt;e5f1ccc&lt;/code&gt;&lt;/a&gt; Docs: add ‘stricter rule config validating’ in migrating docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11905&quot;&gt;#11905&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f86ccaa89daf10123370868c5dcb48c1fcbef7d&quot;&gt;&lt;code&gt;8f86cca&lt;/code&gt;&lt;/a&gt; Upgrade: eslint-scope@^5.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12011&quot;&gt;#12011&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/93633c2b3716b17816bcb3dc221c49b75db41317&quot;&gt;&lt;code&gt;93633c2&lt;/code&gt;&lt;/a&gt; Upgrade: Upgrade lodash dependency (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11992&quot;&gt;#11992&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11994&quot;&gt;#11994&lt;/a&gt;) (Cyd La Luz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d8f26886f19a17f2e1cdcb91e2db84fc7ba3fdfb&quot;&gt;&lt;code&gt;d8f2688&lt;/code&gt;&lt;/a&gt; Upgrade: deps (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11904&quot;&gt;#11904&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c90a12c283698befcafd2c86f8bd8942428fe80b&quot;&gt;&lt;code&gt;c90a12c&lt;/code&gt;&lt;/a&gt; Chore: update release script for new website repo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/12006&quot;&gt;#12006&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2a10856d1ed5880a09a5ba452bd80d49c1be4e6c&quot;&gt;&lt;code&gt;2a10856&lt;/code&gt;&lt;/a&gt; Chore: Add temporary test files to .gitignore (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11978&quot;&gt;#11978&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d83b23382de3b80056a7e6330ed5846316c94147&quot;&gt;&lt;code&gt;d83b233&lt;/code&gt;&lt;/a&gt; Chore: update path for release bundles (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11977&quot;&gt;#11977&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc3885b028e29ebc575c900f43af81cb0dabffb6&quot;&gt;&lt;code&gt;cc3885b&lt;/code&gt;&lt;/a&gt; Chore: add v8-compile-cache to speed up instantiation time (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11921&quot;&gt;#11921&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.0.1 released</title>
    <link href="https://eslint.org/blog/2019/06/eslint-v6.0.1-released/"/>
    <updated>2019-06-24T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/06/eslint-v6.0.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b5bde0669bd6a7a6b8e38cdf204d8d4b932cea63&quot;&gt;&lt;code&gt;b5bde06&lt;/code&gt;&lt;/a&gt; Fix: --rulesdir option didn’t work (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11888&quot;&gt;#11888&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11890&quot;&gt;#11890&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13f041897ee31982808a57b4d06450b57c9b27dc&quot;&gt;&lt;code&gt;13f0418&lt;/code&gt;&lt;/a&gt; Fix: improve error message on --print-config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11874&quot;&gt;#11874&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11885&quot;&gt;#11885&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/056c2aaf39a5f8d06de24f06946dda95032a0361&quot;&gt;&lt;code&gt;056c2aa&lt;/code&gt;&lt;/a&gt; Fix: improve diagnostics for shareable-config-missing errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11880&quot;&gt;#11880&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d07f3fae19b901c30cf4998f10722cb3182bd237&quot;&gt;&lt;code&gt;d07f3fa&lt;/code&gt;&lt;/a&gt; Fix: CLIEngine#getRules() contains plugin rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11871&quot;&gt;#11871&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11872&quot;&gt;#11872&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/566b7aa5d61fb31cd47fe4da7820b07cf9bde1ec&quot;&gt;&lt;code&gt;566b7aa&lt;/code&gt;&lt;/a&gt; Docs: Update &lt;a href=&quot;https://eslint.org/docs/rules/no-confusing-arrow&quot;&gt;no-confusing-arrow&lt;/a&gt; with the new default option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11886&quot;&gt;#11886&lt;/a&gt;) (Yuping Zuo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21f4a8057ccc941f72bb617ae3b5c135a774f6c0&quot;&gt;&lt;code&gt;21f4a80&lt;/code&gt;&lt;/a&gt; Docs: Fix inconsistent linking in migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11881&quot;&gt;#11881&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f3a0774a8879b08777a4aedc76677f13d5156242&quot;&gt;&lt;code&gt;f3a0774&lt;/code&gt;&lt;/a&gt; Docs: Fix typo in 6.0.0 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11870&quot;&gt;#11870&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.0.0 released</title>
    <link href="https://eslint.org/blog/2019/06/eslint-v6.0.0-released/"/>
    <updated>2019-06-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/06/eslint-v6.0.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;There are several breaking changes in 6.0.0. We’ve created a &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-6.0.0&quot;&gt;migration guide&lt;/a&gt; to explain the breaking changes and describe how to upgrade.&lt;/li&gt;
&lt;li&gt;Configuration using glob patterns now supports &lt;code&gt;extends&lt;/code&gt; and nested &lt;code&gt;overrides&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Using multiple &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#specifying-processor&quot;&gt;processors&lt;/a&gt; is now supported.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/function-paren-newline&quot;&gt;&lt;code&gt;function-paren-newline&lt;/code&gt;&lt;/a&gt; rule has a new &lt;code&gt;multiline-arguments&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;&lt;code&gt;sort-keys&lt;/code&gt;&lt;/a&gt; rule now supports a &lt;code&gt;minKeys&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;Changes since v6.0.0-rc.0:&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5f022bc91d0d93d140876ceb1ee4e08b1b7cfd49&quot;&gt;&lt;code&gt;5f022bc&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-else-return&quot;&gt;no-else-return&lt;/a&gt; autofix produces name collisions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11069&quot;&gt;#11069&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11867&quot;&gt;#11867&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ded9548d881b15e771ca79b844e8159601f30f70&quot;&gt;&lt;code&gt;ded9548&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; incorrect message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11864&quot;&gt;#11864&lt;/a&gt;) (golopot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c844c6f2ff314cfa8c6ca0e35a1ef58b7e297b79&quot;&gt;&lt;code&gt;c844c6f&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt; properly ignore trailing comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11838&quot;&gt;#11838&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11841&quot;&gt;#11841&lt;/a&gt;) (ZYSzys)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b5661ae467c227c0239e06cc1466480004aa799&quot;&gt;&lt;code&gt;1b5661a&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-var&quot;&gt;no-var&lt;/a&gt; should not fix variables named ‘let’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11830&quot;&gt;#11830&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11832&quot;&gt;#11832&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81c382378923a45015bafe58362f6c8faa5c3d5f&quot;&gt;&lt;code&gt;81c3823&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;require-atomic-updates&lt;/a&gt; reports parameters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11723&quot;&gt;#11723&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11774&quot;&gt;#11774&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cad074d4ddb34a59183b5965ca50170713b5a711&quot;&gt;&lt;code&gt;cad074d&lt;/code&gt;&lt;/a&gt; Docs: Add JSHint W047 compat to &lt;a href=&quot;https://eslint.org/docs/rules/no-floating-decimal&quot;&gt;no-floating-decimal&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11861&quot;&gt;#11861&lt;/a&gt;) (Timo Tijhof)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/65faa04e8b42eecd4505111bbff296951179f033&quot;&gt;&lt;code&gt;65faa04&lt;/code&gt;&lt;/a&gt; Docs: Clarify &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; array/object difference (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9970&quot;&gt;#9970&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11851&quot;&gt;#11851&lt;/a&gt;) (Oliver Sieweke)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81aa06b4cc49e9c15234a2c4d27659a03fea53d8&quot;&gt;&lt;code&gt;81aa06b&lt;/code&gt;&lt;/a&gt; Upgrade: espree@6.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11869&quot;&gt;#11869&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41f6304ce641a82ee729251b448dceb9fb0d501d&quot;&gt;&lt;code&gt;41f6304&lt;/code&gt;&lt;/a&gt; Upgrade: sinon (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11855&quot;&gt;#11855&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c57a4a4a993193c4208c6419df331a7bc644a536&quot;&gt;&lt;code&gt;c57a4a4&lt;/code&gt;&lt;/a&gt; Upgrade: @babel/polyfill =&amp;gt; core-js v3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11833&quot;&gt;#11833&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d75956147b6fd662ee90eb21d3f762816463b88&quot;&gt;&lt;code&gt;4d75956&lt;/code&gt;&lt;/a&gt; Build: CI with Azure Pipelines (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11845&quot;&gt;#11845&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/167ce87e908ec04b0d3d79960278d45c883c4285&quot;&gt;&lt;code&gt;167ce87&lt;/code&gt;&lt;/a&gt; Chore: remove unuseable profile command (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11854&quot;&gt;#11854&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1db346220889305a427b45a00afcf362b81b3767&quot;&gt;&lt;code&gt;1db3462&lt;/code&gt;&lt;/a&gt; Chore: rm superfluous argument &amp;amp; fix perf-multifiles-targets (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11834&quot;&gt;#11834&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.0.0-rc.0 released</title>
    <link href="https://eslint.org/blog/2019/06/eslint-v6.0.0-rc.0-released/"/>
    <updated>2019-06-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/06/eslint-v6.0.0-rc.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;BigInt and dynamic import are at stage 4 (aside from some TC39 formalities), so we have begun to accept PRs to incorporate them into core ESLint rules. The &lt;a href=&quot;https://eslint.org/docs/rules/valid-typeof&quot;&gt;&lt;code&gt;valid-typeof&lt;/code&gt;&lt;/a&gt; rule now supports BigInt. Please see &lt;a href=&quot;https://github.com/eslint/eslint/issues/11803&quot;&gt;#11803&lt;/a&gt; to track our progress in fully supporting these newly standardized language features.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;&lt;code&gt;sort-keys&lt;/code&gt;&lt;/a&gt; rule now supports a &lt;code&gt;minKeys&lt;/code&gt; option.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@6.0.0-rc.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d662b178c7dad193201564d16f7977af2f81ebcf&quot;&gt;&lt;code&gt;d662b17&lt;/code&gt;&lt;/a&gt; New: Add classname attribute to JUnit testcase (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/11068&quot;&gt;#11068&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11683&quot;&gt;#11683&lt;/a&gt;) (Fabio Pitino)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f403b07283f91f1285d8318d6acea851dd765755&quot;&gt;&lt;code&gt;f403b07&lt;/code&gt;&lt;/a&gt; Update: introduce minKeys option to &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;sort-keys&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11624&quot;&gt;#11624&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11625&quot;&gt;#11625&lt;/a&gt;) (Christian)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4ab0531c4e44c23494c6a802aa2329d15ac90e5&quot;&gt;&lt;code&gt;e4ab053&lt;/code&gt;&lt;/a&gt; Update: support “bigint” in &lt;a href=&quot;https://eslint.org/docs/rules/valid-typeof&quot;&gt;valid-typeof&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11802&quot;&gt;#11802&lt;/a&gt;) (Colin Ihrig)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/37e5193102d7544f155cdcb09c7c50dc602914d4&quot;&gt;&lt;code&gt;37e5193&lt;/code&gt;&lt;/a&gt; Update: add &lt;code&gt;endColumn&lt;/code&gt; to &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;no-useless-escape&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11629&quot;&gt;#11629&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11790&quot;&gt;#11790&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9590587cef74c936ef9b7ce2d22a71e2fd0fbbc4&quot;&gt;&lt;code&gt;9590587&lt;/code&gt;&lt;/a&gt; Update: improve reported location of &lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;arrow-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11773&quot;&gt;#11773&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11775&quot;&gt;#11775&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87451f4779bc4c0ec874042b6854920f947ee258&quot;&gt;&lt;code&gt;87451f4&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-octal&quot;&gt;no-octal&lt;/a&gt; should report NonOctalDecimalIntegerLiteral (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11794&quot;&gt;#11794&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11805&quot;&gt;#11805&lt;/a&gt;) (Milos Djermanovic)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21f3131aa1636afa8e5c01053e0e870f968425b1&quot;&gt;&lt;code&gt;21f3131&lt;/code&gt;&lt;/a&gt; Fix: &lt;code&gt;overrides&lt;/code&gt; handle relative paths as expected (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11577&quot;&gt;#11577&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11799&quot;&gt;#11799&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5509cdfa1b3d575248eef89a935f79c82e3f3071&quot;&gt;&lt;code&gt;5509cdf&lt;/code&gt;&lt;/a&gt; Fix: fails the test case if autofix made syntax error (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11615&quot;&gt;#11615&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11798&quot;&gt;#11798&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb1922bdc07e58de0e55c13fd992dd8faf3292a4&quot;&gt;&lt;code&gt;cb1922b&lt;/code&gt;&lt;/a&gt; Fix: show custom message for namespace import (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11580&quot;&gt;#11580&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11791&quot;&gt;#11791&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/20908a38f489c285abf8fceef4d9d13bf8b87f22&quot;&gt;&lt;code&gt;20908a3&lt;/code&gt;&lt;/a&gt; Docs: removed ‘&amp;gt;’ prefix from from docs/working-with-rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11818&quot;&gt;#11818&lt;/a&gt;) (Alok Takshak)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad4b048c6d034cbd7fd97deb4390d059bde8803f&quot;&gt;&lt;code&gt;ad4b048&lt;/code&gt;&lt;/a&gt; Build: Fix typo in blog post template (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11614&quot;&gt;#11614&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11782&quot;&gt;#11782&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0fafc8ef59a80a6137f4170bbe46582d6fbcafc&quot;&gt;&lt;code&gt;e0fafc8&lt;/code&gt;&lt;/a&gt; Chore: removes unnecessary assignment in loop (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11780&quot;&gt;#11780&lt;/a&gt;) (Dimitri Mitropoulos)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8eaa9b259dc08dfb48269b1e4413d0d47698ed87&quot;&gt;&lt;code&gt;8eaa9b2&lt;/code&gt;&lt;/a&gt; Chore: remove incorrect comment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11769&quot;&gt;#11769&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4039a49177f2fefacd747050b420c0c4560b7d4b&quot;&gt;&lt;code&gt;4039a49&lt;/code&gt;&lt;/a&gt; Chore: add .github/funding.yml (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11764&quot;&gt;#11764&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.0.0-alpha.2 released</title>
    <link href="https://eslint.org/blog/2019/05/eslint-v6.0.0-alpha.2-released/"/>
    <updated>2019-05-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/05/eslint-v6.0.0-alpha.2-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Configuration using glob patterns now supports &lt;code&gt;extends&lt;/code&gt; and nested &lt;code&gt;overrides&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Using multiple processors is now supported&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@6.0.0-alpha.2 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;If you’re upgrading from ESLint v5.x, we recommend looking at the &lt;a href=&quot;https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0&quot;&gt;migration guide&lt;/a&gt;, which describes the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d32a9e8dd10a5927576bd50d184876c775da4af&quot;&gt;&lt;code&gt;2d32a9e&lt;/code&gt;&lt;/a&gt; Breaking: stricter rule config validating (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9505&quot;&gt;#9505&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11742&quot;&gt;#11742&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b5fa1491d2371a721e4b5029e797ae98fd30fed2&quot;&gt;&lt;code&gt;b5fa149&lt;/code&gt;&lt;/a&gt; New: multiple processors support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11035&quot;&gt;#11035&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11725&quot;&gt;#11725&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11552&quot;&gt;#11552&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54e6edaa2f881aab530fa14e63d92e5e0e2ca55c&quot;&gt;&lt;code&gt;54e6eda&lt;/code&gt;&lt;/a&gt; New: extends in glob-based config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8813&quot;&gt;#8813&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11554&quot;&gt;#11554&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf9cce81aa68e9bc23840530cb33f4c3f551fb1e&quot;&gt;&lt;code&gt;cf9cce8&lt;/code&gt;&lt;/a&gt; Update: Add never option for &lt;a href=&quot;https://eslint.org/docs/rules/new-parens&quot;&gt;new-parens&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/10034&quot;&gt;#10034&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11379&quot;&gt;#11379&lt;/a&gt;) (pfgithub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71716eba3155266d777b994a38af524952e97696&quot;&gt;&lt;code&gt;71716eb&lt;/code&gt;&lt;/a&gt; Update: add fixer for &lt;a href=&quot;https://eslint.org/docs/rules/no-div-regex&quot;&gt;no-div-regex&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11355&quot;&gt;#11355&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11744&quot;&gt;#11744&lt;/a&gt;) (joe-re)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53f7f4cf8d8b66a1911db56e4f72764388a21cc4&quot;&gt;&lt;code&gt;53f7f4c&lt;/code&gt;&lt;/a&gt; Update: Uniform messages for the rules in “&lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;complexity&lt;/a&gt;” section (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11759&quot;&gt;#11759&lt;/a&gt;) (Igor Novozhilov)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9790ca1baec1275f3c946586766a5713258ac32&quot;&gt;&lt;code&gt;f9790ca&lt;/code&gt;&lt;/a&gt; Fix: typo: missing word in docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11750&quot;&gt;#11750&lt;/a&gt;) (Dimitri Mitropoulos)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5dad0b1d80c9cf380c49f46266c35d461d3cecad&quot;&gt;&lt;code&gt;5dad0b1&lt;/code&gt;&lt;/a&gt; Fix: Unignoring directories in .eslintignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11684&quot;&gt;#11684&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11685&quot;&gt;#11685&lt;/a&gt;) (Mykola Bilochub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c8e86bf2c900cec7cd1dfd529a8c77cc81ef34c&quot;&gt;&lt;code&gt;7c8e86b&lt;/code&gt;&lt;/a&gt; Fix: wrong ‘plugin-missing’ error on Node.js 12 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11720&quot;&gt;#11720&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11722&quot;&gt;#11722&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/45bd336e647a6fa8a502488e5cbd27ba02712083&quot;&gt;&lt;code&gt;45bd336&lt;/code&gt;&lt;/a&gt; Docs: add about RuleTester’s parser to migration guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11728&quot;&gt;#11728&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11761&quot;&gt;#11761&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1374be44f7ec4b8c913c52cc84debc4012c4f3ea&quot;&gt;&lt;code&gt;1374be4&lt;/code&gt;&lt;/a&gt; Docs: add table of contents in readme (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11765&quot;&gt;#11765&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e45cc3f3dc44f3a5b6b713a1bf5ce6e46d87ca49&quot;&gt;&lt;code&gt;e45cc3f&lt;/code&gt;&lt;/a&gt; Docs: updated &lt;a href=&quot;https://eslint.org/docs/rules/no-proto&quot;&gt;no-proto&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11743&quot;&gt;#11743&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11746&quot;&gt;#11746&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/462509058e46770cf70307cf8dba279f0e73b967&quot;&gt;&lt;code&gt;4625090&lt;/code&gt;&lt;/a&gt; Docs: small fix about the migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11729&quot;&gt;#11729&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b87fee9dc7b1d99a50b924cb6b81255ebb5c4a2&quot;&gt;&lt;code&gt;9b87fee&lt;/code&gt;&lt;/a&gt; Chore: Fix formatter documentation generation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11767&quot;&gt;#11767&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f11620848733a3a6f58811d9bb2c3e748d6135ac&quot;&gt;&lt;code&gt;f116208&lt;/code&gt;&lt;/a&gt; Chore: Fix site generation script for releases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11766&quot;&gt;#11766&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a801d702dc41dae7eac0c802b822493ddc3ac41&quot;&gt;&lt;code&gt;0a801d7&lt;/code&gt;&lt;/a&gt; Chore: improve perf test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11756&quot;&gt;#11756&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec105b24f7e036ecdc4267f018529ac3765e29d5&quot;&gt;&lt;code&gt;ec105b2&lt;/code&gt;&lt;/a&gt; Chore: typo in JSDoc on timing.display’s return value (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11755&quot;&gt;#11755&lt;/a&gt;) (Dimitri Mitropoulos)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/15c6c6374c0425d5402142d012a541fa208bc9da&quot;&gt;&lt;code&gt;15c6c63&lt;/code&gt;&lt;/a&gt; Chore: eslint-config-eslint require node &amp;gt;= 8 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11718&quot;&gt;#11718&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/219aecb78bc646d44bad27dc775a9b3d3dc58232&quot;&gt;&lt;code&gt;219aecb&lt;/code&gt;&lt;/a&gt; Chore: restructure files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11555&quot;&gt;#11555&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67c671fdc1c8b08cb8d263a9bb2151e3108c88b4&quot;&gt;&lt;code&gt;67c671f&lt;/code&gt;&lt;/a&gt; Chore: ignore deprecated rules in fuzz tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11710&quot;&gt;#11710&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af81cb3ecc5e6bf43a6a2d8f326103350513a1b8&quot;&gt;&lt;code&gt;af81cb3&lt;/code&gt;&lt;/a&gt; Chore: make fuzzer produce minimal reproducible examples of bugs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11700&quot;&gt;#11700&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.0.0-alpha.1 released</title>
    <link href="https://eslint.org/blog/2019/05/eslint-v6.0.0-alpha.1-released/"/>
    <updated>2019-05-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/05/eslint-v6.0.0-alpha.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Most of the highlights of this release are breaking changes, and are discussed further in the &lt;a href=&quot;https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;New breaking changes in this prerelease include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0#-overrides-in-an-extended-config-file-can-now-be-overridden-by-a-parent-config-file&quot;&gt;Some config-loading bugs have been fixed&lt;/a&gt;. This change involved some refactoring to how config files are processed internally. Please let us know if you encounter any problems relating to configuration in this release.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0#-eslintrecommended-has-been-updated&quot;&gt;&lt;code&gt;eslint:recommended&lt;/code&gt; has been updated&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0#no-redeclare-updates&quot;&gt;&lt;code&gt;no-redeclare&lt;/code&gt; has been made stricter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@6.0.0-alpha.1 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;If you’re upgrading from ESLint v5.x, we recommend looking at the &lt;a href=&quot;https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0&quot;&gt;migration guide&lt;/a&gt;, which describes the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ae21a4bfe5a1566f787fbad798182a524b96d28&quot;&gt;&lt;code&gt;6ae21a4&lt;/code&gt;&lt;/a&gt; Breaking: fix config loading (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11510&quot;&gt;#11510&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11559&quot;&gt;#11559&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11586&quot;&gt;#11586&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11546&quot;&gt;#11546&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0fc8e62818bc8d0a0a804b59c6110818844df5f3&quot;&gt;&lt;code&gt;0fc8e62&lt;/code&gt;&lt;/a&gt; Breaking: eslint:recommended changes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10768&quot;&gt;#10768&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11518&quot;&gt;#11518&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/20364cc4f7fe0423adce0dd44fb24fc48e1cae4b&quot;&gt;&lt;code&gt;20364cc&lt;/code&gt;&lt;/a&gt; Breaking: make &lt;a href=&quot;https://eslint.org/docs/rules/no-redeclare&quot;&gt;no-redeclare&lt;/a&gt; stricter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11370&quot;&gt;#11370&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11405&quot;&gt;#11405&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11509&quot;&gt;#11509&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21dd2116c70b93aa8dd50d2b15e202724b11486a&quot;&gt;&lt;code&gt;21dd211&lt;/code&gt;&lt;/a&gt; New: add --resolve-plugins-relative-to flag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11696&quot;&gt;#11696&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/252efd337b1441debb6d2cc8f51a625549b2c535&quot;&gt;&lt;code&gt;252efd3&lt;/code&gt;&lt;/a&gt; Fix: delete unnecessary duplicated question (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11617&quot;&gt;#11617&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11618&quot;&gt;#11618&lt;/a&gt;) (HelloRusk)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a3a88df2f952c34631d8e1d83de47178826fce0&quot;&gt;&lt;code&gt;1a3a88d&lt;/code&gt;&lt;/a&gt; Fix: Curly rule incorrectly flagging lexical declarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11663&quot;&gt;#11663&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11675&quot;&gt;#11675&lt;/a&gt;) (Brian Kurek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f47d72ce2f2edb80cd38810894b9d4bda896bb29&quot;&gt;&lt;code&gt;f47d72c&lt;/code&gt;&lt;/a&gt; Fix: not set ecmaVersion to 6 when sourceType=module (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9687&quot;&gt;#9687&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11649&quot;&gt;#11649&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9484e9ea188ff70683c3112e397c7fddcc3f8095&quot;&gt;&lt;code&gt;9484e9e&lt;/code&gt;&lt;/a&gt; Fix: ignore return statements in dead code (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11647&quot;&gt;#11647&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11688&quot;&gt;#11688&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aae6f6525557ba06e73f051511646056313fcf91&quot;&gt;&lt;code&gt;aae6f65&lt;/code&gt;&lt;/a&gt; Fix: don’t use deprecated API (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11689&quot;&gt;#11689&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4400b5a02602bba7f67ea4cb874c231903c546a&quot;&gt;&lt;code&gt;e4400b5&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;require-atomic-updates&lt;/a&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11194&quot;&gt;#11194&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11687&quot;&gt;#11687&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11224&quot;&gt;#11224&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/776b0fe3d93da958517ac7752682091f22eb30b4&quot;&gt;&lt;code&gt;776b0fe&lt;/code&gt;&lt;/a&gt; Fix: update rule message of &lt;a href=&quot;https://eslint.org/docs/rules/no-throw-literal&quot;&gt;no-throw-literal&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11637&quot;&gt;#11637&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11638&quot;&gt;#11638&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67c08b67509c54acd96aab2cec22efb53bfe6265&quot;&gt;&lt;code&gt;67c08b6&lt;/code&gt;&lt;/a&gt; Fix: consider comments in &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-spacing&quot;&gt;object-curly-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11656&quot;&gt;#11656&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11657&quot;&gt;#11657&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b6d41cbe28a8b28b1c1d9aa36cb4c349c73f6f1d&quot;&gt;&lt;code&gt;b6d41cb&lt;/code&gt;&lt;/a&gt; Fix: check token before using in &lt;a href=&quot;https://eslint.org/docs/rules/no-cond-assign&quot;&gt;no-cond-assign&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11611&quot;&gt;#11611&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11619&quot;&gt;#11619&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1dfe077b7e47c6090277eb984e08bd472bb5595e&quot;&gt;&lt;code&gt;1dfe077&lt;/code&gt;&lt;/a&gt; Fix: autofix of &lt;a href=&quot;https://eslint.org/docs/rules/no-unneeded-ternary&quot;&gt;no-unneeded-ternary&lt;/a&gt; made syntax error (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11579&quot;&gt;#11579&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11616&quot;&gt;#11616&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e84b6f8b171ba4266164688f76d5ee45d278e5c2&quot;&gt;&lt;code&gt;e84b6f8&lt;/code&gt;&lt;/a&gt; Docs: fix example in &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11633&quot;&gt;#11633&lt;/a&gt;) (golopot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/483239ec74a0c13529fc99547a784b749f41dd54&quot;&gt;&lt;code&gt;483239e&lt;/code&gt;&lt;/a&gt; Docs: updated ImportDeclaration in docs-rules-&lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11679&quot;&gt;#11679&lt;/a&gt;) (Alok Takshak)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b3b036d6240cdbc2d52e670de36b1117f5f34d7&quot;&gt;&lt;code&gt;4b3b036&lt;/code&gt;&lt;/a&gt; Docs: replace &lt;code&gt;var&lt;/code&gt; with &lt;code&gt;const&lt;/code&gt; in code examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11655&quot;&gt;#11655&lt;/a&gt;) (Niyaz Akhmetov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2e78281d057f38b18cc160e81ed1bb54a5b9565&quot;&gt;&lt;code&gt;f2e7828&lt;/code&gt;&lt;/a&gt; Docs: Fix Node 6 LTS EOL date (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11676&quot;&gt;#11676&lt;/a&gt;) (James Ross)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/adc6585ce074e03fc8a842e8ebc5b082a0ed0b65&quot;&gt;&lt;code&gt;adc6585&lt;/code&gt;&lt;/a&gt; Docs: update status of breaking changes in migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11652&quot;&gt;#11652&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eef71e455e67040168c8df8a6c9c2b4fbe805a50&quot;&gt;&lt;code&gt;eef71e4&lt;/code&gt;&lt;/a&gt; Docs: add missing items to migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11628&quot;&gt;#11628&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bebd0793eaf122b013cca501ff2c6b0fc05d5493&quot;&gt;&lt;code&gt;bebd079&lt;/code&gt;&lt;/a&gt; Docs: fix grammar mistake in &lt;a href=&quot;https://eslint.org/docs/rules/no-caller&quot;&gt;no-caller&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11623&quot;&gt;#11623&lt;/a&gt;) (Daniel Lemay)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f62a4510b007172c7160f007a6ec2aa2c9a80dd7&quot;&gt;&lt;code&gt;f62a451&lt;/code&gt;&lt;/a&gt; Build: add node 12 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11648&quot;&gt;#11648&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f42d0afd89874b459fce1eb1998247d53f9aa42b&quot;&gt;&lt;code&gt;f42d0af&lt;/code&gt;&lt;/a&gt; Chore: lazy loading for rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11705&quot;&gt;#11705&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5bae78c19d5359f67969a2ff344025082e253f4&quot;&gt;&lt;code&gt;f5bae78&lt;/code&gt;&lt;/a&gt; Chore: fix CLIEngine tests when os.tmpdir is a symlink (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11697&quot;&gt;#11697&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4a08bae82788136b6899262cb8b9ed4fe7964e6&quot;&gt;&lt;code&gt;e4a08ba&lt;/code&gt;&lt;/a&gt; Chore: update eslint-plugin-node to 9.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11670&quot;&gt;#11670&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f290a9044ca795884ac2e495cd31b2a35f109a6&quot;&gt;&lt;code&gt;7f290a9&lt;/code&gt;&lt;/a&gt; Chore: add eslint as a devDependeny (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11654&quot;&gt;#11654&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/139fd2f1254bcc524738f8c2645e0847df95e0d0&quot;&gt;&lt;code&gt;139fd2f&lt;/code&gt;&lt;/a&gt; Chore: add markdownlint-cli (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11653&quot;&gt;#11653&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b4dba606f8306f8ad0a37e2174a6e3236f7ebe7&quot;&gt;&lt;code&gt;8b4dba6&lt;/code&gt;&lt;/a&gt; Chore: Add linting to git commit (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11556&quot;&gt;#11556&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Funding ESLint&#39;s Future: An Update</title>
    <link href="https://eslint.org/blog/2019/05/funding-update/"/>
    <updated>2019-05-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/05/funding-update/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog-covers/sponsorship-funding2.png&quot; alt=&quot;GitKraken, Badoo, Salesforce donate to ESLint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Back in February, we &lt;a href=&quot;https://eslint.org/blog/2019/02/funding-eslint-future&quot;&gt;announced&lt;/a&gt; the creation of the &lt;a href=&quot;https://opencollective.com/eslint&quot;&gt;ESLint Collective&lt;/a&gt; to raise funds for the ongoing maintenance and development of ESLint. At the time, we were grateful to have both &lt;a href=&quot;https://code.facebook.com/projects/&quot;&gt;Facebook Open Source&lt;/a&gt; and &lt;a href=&quot;https://airbnb.com/&quot;&gt;Airbnb&lt;/a&gt; as our first two gold sponsors, each donating $1,000 per month.&lt;/p&gt;
&lt;p&gt;In the past three months, we are happy to share that our monthly donations have reached over $7,000, 35% of the way towards our $20,000 goal. That’s an amazing achievement in such a short amount of time, and we are humbled that so many have reached out to support ESLint.&lt;/p&gt;
&lt;h2 id=&quot;introducing-our-latest-sponsors&quot; tabindex=&quot;-1&quot;&gt;Introducing our latest sponsors&lt;/h2&gt;
&lt;p&gt;We are happy to share that the following sponsors have joined the ESLint Collective at the gold sponsor level, donating $1,000 or more per month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.gitkraken.com/&quot;&gt;&lt;strong&gt;GitKraken&lt;/strong&gt;&lt;/a&gt; - $1,100&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://badoo.com/team&quot;&gt;&lt;strong&gt;Badoo&lt;/strong&gt;&lt;/a&gt; - $1,000&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://salesforce.com/&quot;&gt;&lt;strong&gt;Salesforce&lt;/strong&gt;&lt;/a&gt; - $1,000&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following sponsors have joined the ESLint Collective at the silver sponsor level, donating between $500 and $999 per month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.ampproject.org/&quot;&gt;&lt;strong&gt;Amp Project&lt;/strong&gt;&lt;/a&gt; - $500&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And the following sponsors have joined the ESLint Collective at the bronze sponsor level, donating between $200 and $499 per month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://faithlife.com/ref/about&quot;&gt;&lt;strong&gt;Faithlife&lt;/strong&gt;&lt;/a&gt; - $200&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jsheroes.io/&quot;&gt;&lt;strong&gt;JSHeroes&lt;/strong&gt;&lt;/a&gt; - $200&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.firesticktricks.com/&quot;&gt;&lt;strong&gt;Fire Stick Tricks&lt;/strong&gt;&lt;/a&gt; - $200&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.marfeel.com/&quot;&gt;&lt;strong&gt;Marfeel&lt;/strong&gt;&lt;/a&gt; - $200&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://usave.co.uk/utilities/broadband/&quot;&gt;&lt;strong&gt;Usave&lt;/strong&gt;&lt;/a&gt; - $200&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tekhattan.com/&quot;&gt;&lt;strong&gt;TekHattan&lt;/strong&gt;&lt;/a&gt; - $200&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://themeisle.com/&quot;&gt;&lt;strong&gt;ThemseIsle&lt;/strong&gt;&lt;/a&gt; - $200&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;become-a-sponsor&quot; tabindex=&quot;-1&quot;&gt;Become a sponsor&lt;/h2&gt;
&lt;p&gt;If your company also uses ESLint to find and fix problems in your JavaScript code, please ask them to join these fantastic companies in &lt;a href=&quot;https://opencollective.com/eslint&quot;&gt;sponsoring ESLint&lt;/a&gt;. (All sponsors above $200 per month get their logos on both the ESLint README and on the homepage of &lt;a href=&quot;http://eslint.org/&quot;&gt;eslint.org&lt;/a&gt;.)&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v6.0.0-alpha.0 released</title>
    <link href="https://eslint.org/blog/2019/04/eslint-v6.0.0-alpha.0-released/"/>
    <updated>2019-04-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/04/eslint-v6.0.0-alpha.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Most of the highlights of this release are breaking changes, and are discussed further in the &lt;a href=&quot;https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Non-breaking highlights:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/function-paren-newline&quot;&gt;&lt;code&gt;function-paren-newline&lt;/code&gt;&lt;/a&gt; rule has a new &lt;code&gt;multiline-arguments&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@6.0.0-alpha.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/6.0.0/user-guide/migrating-to-6.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e49b56c08fd0e449fddab45dfeb0da8d918b460&quot;&gt;&lt;code&gt;9e49b56&lt;/code&gt;&lt;/a&gt; Breaking: upgrade espree to 6.0.0-alpha.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9687&quot;&gt;#9687&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11610&quot;&gt;#11610&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ef7801ea510e12a9ca4963bcc8ec7e3aacc75ff0&quot;&gt;&lt;code&gt;ef7801e&lt;/code&gt;&lt;/a&gt; Breaking: disallow invalid rule defaults in RuleTester (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11473&quot;&gt;#11473&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11599&quot;&gt;#11599&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e7cdca571632a3f3c32b39eb03022fe88ca8b30&quot;&gt;&lt;code&gt;4e7cdca&lt;/code&gt;&lt;/a&gt; Breaking: &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; enable functions: “never” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11502&quot;&gt;#11502&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11519&quot;&gt;#11519&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12f256f22534c4a4e1ca0ba54c37c6db81441461&quot;&gt;&lt;code&gt;12f256f&lt;/code&gt;&lt;/a&gt; Breaking: &lt;a href=&quot;https://eslint.org/docs/rules/no-confusing-arrow&quot;&gt;no-confusing-arrow&lt;/a&gt; enable allowParens: true (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11503&quot;&gt;#11503&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11520&quot;&gt;#11520&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25cc63d47e6c0aea8b88589a088c1f0de5f6f1cc&quot;&gt;&lt;code&gt;25cc63d&lt;/code&gt;&lt;/a&gt; Breaking: simplify config/plugin/parser resolution (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10125&quot;&gt;#10125&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11388&quot;&gt;#11388&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd1c91b00e8d8c3a83d21e60668d5f1fa61cb214&quot;&gt;&lt;code&gt;fd1c91b&lt;/code&gt;&lt;/a&gt; Breaking: throw an error for invalid global configs (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/11338&quot;&gt;#11338&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11517&quot;&gt;#11517&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/be833229b355eafb90f3e0bbc29bb106e100bed0&quot;&gt;&lt;code&gt;be83322&lt;/code&gt;&lt;/a&gt; Breaking: Remove extra rules from eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10873&quot;&gt;#10873&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11357&quot;&gt;#11357&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2543f11dfe8069ed5096073169cf6791d42454db&quot;&gt;&lt;code&gt;2543f11&lt;/code&gt;&lt;/a&gt; Breaking: remove deprecated experimentalObjectRestSpread option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11420&quot;&gt;#11420&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0fb5fd402334098dc44cbfbb8ab25919da04843d&quot;&gt;&lt;code&gt;0fb5fd4&lt;/code&gt;&lt;/a&gt; Breaking: interpret rule options as unicode regexes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11423&quot;&gt;#11423&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11516&quot;&gt;#11516&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e7da57dddc41830df4aee77e31c4320c1557350&quot;&gt;&lt;code&gt;6e7da57&lt;/code&gt;&lt;/a&gt; Breaking: drop Node.js 6 support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11456&quot;&gt;#11456&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11557&quot;&gt;#11557&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5cfdc2d08307c63bec487e76d2f470ef84166867&quot;&gt;&lt;code&gt;5cfdc2d&lt;/code&gt;&lt;/a&gt; Update: Improve &lt;a href=&quot;https://eslint.org/docs/rules/no-loop-func&quot;&gt;no-loop-func&lt;/a&gt; rule description and message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11046&quot;&gt;#11046&lt;/a&gt;) (Pedro Lopes)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2f8ae1397eef3625fe66636e95b0b312c6ff8a37&quot;&gt;&lt;code&gt;2f8ae13&lt;/code&gt;&lt;/a&gt; Update: support single argument on newline with &lt;a href=&quot;https://eslint.org/docs/rules/function-paren-newline&quot;&gt;function-paren-newline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11406&quot;&gt;#11406&lt;/a&gt;) (Vladlen Grachev)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0127d107590acabfdea4a68b56acbeee6a7b9daa&quot;&gt;&lt;code&gt;0127d10&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-var&quot;&gt;no-var&lt;/a&gt; fixed to incorrect code (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11441&quot;&gt;#11441&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11443&quot;&gt;#11443&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/608a02c60656b96c3219d342eee7e98b55bdd580&quot;&gt;&lt;code&gt;608a02c&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; ignoreConstructors option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11595&quot;&gt;#11595&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11596&quot;&gt;#11596&lt;/a&gt;) (overlookmotel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b92ca6ea8ae46b92c258921e8b5b40f5035dbc43&quot;&gt;&lt;code&gt;b92ca6e&lt;/code&gt;&lt;/a&gt; Fix: getErrorResults function to not mutate passed parameter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11592&quot;&gt;#11592&lt;/a&gt;) (danielamaia)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19248e0838425748d75518fe9f0a985587793378&quot;&gt;&lt;code&gt;19248e0&lt;/code&gt;&lt;/a&gt; Fix: make &lt;code&gt;overrides[].files&lt;/code&gt; matching dotfiles (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11201&quot;&gt;#11201&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11225&quot;&gt;#11225&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8bfd1d138001d4493180b2fcff3330b42d0bb7cb&quot;&gt;&lt;code&gt;8bfd1d1&lt;/code&gt;&lt;/a&gt; Docs: add v6.0.0 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11515&quot;&gt;#11515&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cbdee6230d22522c37259449467ace16f28ea8e8&quot;&gt;&lt;code&gt;cbdee62&lt;/code&gt;&lt;/a&gt; Docs: README updates to reflect JSCS compat project is finished (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11568&quot;&gt;#11568&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/595de4074fac1b5839f56b29fe0106a7fda7e3e0&quot;&gt;&lt;code&gt;595de40&lt;/code&gt;&lt;/a&gt; Docs: edit &lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;arrow-parens&lt;/a&gt; as-needed explanation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11202&quot;&gt;#11202&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11569&quot;&gt;#11569&lt;/a&gt;) (Logan Lowder)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a73b4b8d6398b00bdaf90599d9e6d1c80f000f88&quot;&gt;&lt;code&gt;a73b4b8&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eeea89361d48494995446ddb6ee6f049457911ec&quot;&gt;&lt;code&gt;eeea893&lt;/code&gt;&lt;/a&gt; Upgrade: update js-yaml package to 3.13.1 version (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11607&quot;&gt;#11607&lt;/a&gt;) (Pobegaylo Maksim)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e70d5f7573a9641d7b63394df53a3ef86183445c&quot;&gt;&lt;code&gt;e70d5f7&lt;/code&gt;&lt;/a&gt; Upgrade: compatible deps (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11608&quot;&gt;#11608&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3396c3e2231b5b6e16da8751c22c86c256590f6b&quot;&gt;&lt;code&gt;3396c3e&lt;/code&gt;&lt;/a&gt; Upgrade: karma@^4.0.1, drops Node 6 support, fixes vulnerability (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11570&quot;&gt;#11570&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3d9e1372aad1e174b5438e3d6bd75fdefba06bad&quot;&gt;&lt;code&gt;3d9e137&lt;/code&gt;&lt;/a&gt; Chore: fix test that fails when the CWD contains a space (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11612&quot;&gt;#11612&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.16.0 released</title>
    <link href="https://eslint.org/blog/2019/03/eslint-v5.16.0-released/"/>
    <updated>2019-03-29T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/03/eslint-v5.16.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Formatters can now use rule metadata in their output! This enhancement was originally described and designed using &lt;a href=&quot;https://github.com/eslint/rfcs/pull/10&quot;&gt;our RFC process&lt;/a&gt;. More information can be found &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-custom-formatters#the-data-argument&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A new built-in formatter, &lt;a href=&quot;https://eslint.org/docs/user-guide/formatters/#json-with-metadata&quot;&gt;json-with-metadata&lt;/a&gt;, was created using this new feature. The &lt;code&gt;json-with-metadata&lt;/code&gt; formatter is very similar to the &lt;code&gt;json&lt;/code&gt; formatter, except that it also includes the rule metadata.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bc3e427ee8875c53eac6b6762884b50074f1adfc&quot;&gt;&lt;code&gt;bc3e427&lt;/code&gt;&lt;/a&gt; Update: pass rule meta to formatters RFC 10 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11551&quot;&gt;#11551&lt;/a&gt;) (Chris Meyer)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c06d38c81bd9203c904587396a65d3c8cc7f2944&quot;&gt;&lt;code&gt;c06d38c&lt;/code&gt;&lt;/a&gt; Fix: Allow HTML formatter to handle no meta data (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11566&quot;&gt;#11566&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87a5c034977cf4538ff3539d2f8776a987c5942a&quot;&gt;&lt;code&gt;87a5c03&lt;/code&gt;&lt;/a&gt; Docs: &lt;a href=&quot;https://eslint.org/docs/rules/func-style&quot;&gt;&lt;code&gt;func-style&lt;/code&gt;&lt;/a&gt;: clarify when &lt;code&gt;allowArrowFunctions&lt;/code&gt; is used (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11548&quot;&gt;#11548&lt;/a&gt;) (Oliver Joseph Ash)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78358a8f66e95c4fcc921f2497e8a5ec5f1537ec&quot;&gt;&lt;code&gt;78358a8&lt;/code&gt;&lt;/a&gt; Docs: fix duplicate punctuation in CLI docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11528&quot;&gt;#11528&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afe3d25f8afb88caee43f7202d0eb96f33a92a6b&quot;&gt;&lt;code&gt;afe3d25&lt;/code&gt;&lt;/a&gt; Upgrade: Bump js-yaml dependency to fix Denial of Service vulnerability (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11550&quot;&gt;#11550&lt;/a&gt;) (Vernon de Goede)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dfef227091955a2f8f3fa8c76ad79de8a77e7955&quot;&gt;&lt;code&gt;dfef227&lt;/code&gt;&lt;/a&gt; Build: gensite passes rulesMeta to formatter rendering (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11567&quot;&gt;#11567&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b452f270bc0b523d88d5d827c95be3096f82e99d&quot;&gt;&lt;code&gt;b452f27&lt;/code&gt;&lt;/a&gt; Chore: Update README to pull in reviewer data (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11506&quot;&gt;#11506&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fe7eb7cecdc2395cf1eeaa20921bda8460b00c2&quot;&gt;&lt;code&gt;4fe7eb7&lt;/code&gt;&lt;/a&gt; Chore: use nyc instead of istanbul (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11532&quot;&gt;#11532&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f16af439694aab473c647d8fae47c402bd489447&quot;&gt;&lt;code&gt;f16af43&lt;/code&gt;&lt;/a&gt; Chore: fix formatters/table test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11534&quot;&gt;#11534&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.15.3 released</title>
    <link href="https://eslint.org/blog/2019/03/eslint-v5.15.3-released/"/>
    <updated>2019-03-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/03/eslint-v5.15.3-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71adc665b9649b173adc76f80723b8de20664ae1&quot;&gt;&lt;code&gt;71adc66&lt;/code&gt;&lt;/a&gt; Fix: avoid moving comments in &lt;a href=&quot;https://eslint.org/docs/rules/implicit-arrow-linebreak&quot;&gt;implicit-arrow-linebreak&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11521&quot;&gt;#11521&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11522&quot;&gt;#11522&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f715a20c145d8ccc38f3310afccd838495d09d4&quot;&gt;&lt;code&gt;1f715a2&lt;/code&gt;&lt;/a&gt; Chore: make test-case-property-ordering reasonable (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11511&quot;&gt;#11511&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.15.2 released</title>
    <link href="https://eslint.org/blog/2019/03/eslint-v5.15.2-released/"/>
    <updated>2019-03-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/03/eslint-v5.15.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29dbca73d762a809adb2f457b527e144426d54a7&quot;&gt;&lt;code&gt;29dbca7&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/implicit-arrow-linebreak&quot;&gt;implicit-arrow-linebreak&lt;/a&gt; adds extra characters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11268&quot;&gt;#11268&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11407&quot;&gt;#11407&lt;/a&gt;) (Mark de Dios)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a5dae7c3d30231c2f5f075d98c2c8825899bab16&quot;&gt;&lt;code&gt;a5dae7c&lt;/code&gt;&lt;/a&gt; Fix: Empty glob pattern incorrectly expands to “/**” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11476&quot;&gt;#11476&lt;/a&gt;) (Ben Chauvette)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6c112289f0f16ade070865c8786831b7940ca79&quot;&gt;&lt;code&gt;d6c1122&lt;/code&gt;&lt;/a&gt; Docs: Add working groups to maintainer guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11400&quot;&gt;#11400&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/956e883c21fd9f393bf6718d032a4e2e53b33f22&quot;&gt;&lt;code&gt;956e883&lt;/code&gt;&lt;/a&gt; Docs: Fix example in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-modules&quot;&gt;no-restricted-modules&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11454&quot;&gt;#11454&lt;/a&gt;) (Paul O’Shannessy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c7431d6b32063f74e3837ee727f26af215eada7&quot;&gt;&lt;code&gt;2c7431d&lt;/code&gt;&lt;/a&gt; Docs: fix json schema example dead link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11498&quot;&gt;#11498&lt;/a&gt;) (kazuya kawaguchi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e7266c2478aff5d66e7859313feb49e3a129f85e&quot;&gt;&lt;code&gt;e7266c2&lt;/code&gt;&lt;/a&gt; Docs: Fix invalid JSON in “Specifying Parser Options” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11492&quot;&gt;#11492&lt;/a&gt;) (Mihira Jayasekera)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/075612871f85aa04cef8137bd32247e128ad600b&quot;&gt;&lt;code&gt;0756128&lt;/code&gt;&lt;/a&gt; Docs: Add &lt;code&gt;visualstudio&lt;/code&gt; to formatter list (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11480&quot;&gt;#11480&lt;/a&gt;) (Patrick Eriksson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/44de9d7e1aa2fcae475a97b8f597b7d8094566b2&quot;&gt;&lt;code&gt;44de9d7&lt;/code&gt;&lt;/a&gt; Docs: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/func-name-matching&quot;&gt;func-name-matching&lt;/a&gt; rule docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11484&quot;&gt;#11484&lt;/a&gt;) (Iulian Onofrei)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d2083fa3e14c024197f6c386ff72237a145e258&quot;&gt;&lt;code&gt;5d2083f&lt;/code&gt;&lt;/a&gt; Upgrade: eslint-scope@4.0.3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11513&quot;&gt;#11513&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5fdb4d3fb01b9d8a4c2dff71ed9cddb2f8feefb0&quot;&gt;&lt;code&gt;5fdb4d3&lt;/code&gt;&lt;/a&gt; Build: compile deps to ES5 when generating browser file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11504&quot;&gt;#11504&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11505&quot;&gt;#11505&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/06fa1655c3da8394ed9144d727115fc434b0416f&quot;&gt;&lt;code&gt;06fa165&lt;/code&gt;&lt;/a&gt; Build: update CI testing configuration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11500&quot;&gt;#11500&lt;/a&gt;) (Reece Dunham)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/34a53829e7a63ff2f6b371d77ce283bbdd373b91&quot;&gt;&lt;code&gt;34a5382&lt;/code&gt;&lt;/a&gt; Build: copy bundled espree to website directory (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11478&quot;&gt;#11478&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/448e8da94d09b397e98ffcb6f22b55a578ef79c1&quot;&gt;&lt;code&gt;448e8da&lt;/code&gt;&lt;/a&gt; Chore: improve crash reporting (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11304&quot;&gt;#11304&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11463&quot;&gt;#11463&lt;/a&gt;) (Alex Zherdev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f56dc6d9eadad05dc3d5c9d1d9ddef94e10c5d3&quot;&gt;&lt;code&gt;0f56dc6&lt;/code&gt;&lt;/a&gt; Chore: make config validator params more consistent (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11435&quot;&gt;#11435&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62fee4a976897d158c8c137339728cd280333286&quot;&gt;&lt;code&gt;62fee4a&lt;/code&gt;&lt;/a&gt; Chore: eslint-config-eslint enable &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; functions: “never” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11434&quot;&gt;#11434&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f078f9a9e094ec00c61a6ef1c9550d017631e69a&quot;&gt;&lt;code&gt;f078f9a&lt;/code&gt;&lt;/a&gt; Chore: use “file:” dependencies for internal rules/config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11465&quot;&gt;#11465&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.15.1 released</title>
    <link href="https://eslint.org/blog/2019/03/eslint-v5.15.1-released/"/>
    <updated>2019-03-04T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/03/eslint-v5.15.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/458053b0b541f857bf233dacbde5ba80681820f8&quot;&gt;&lt;code&gt;458053b&lt;/code&gt;&lt;/a&gt; Fix: avoid creating invalid regex in &lt;a href=&quot;https://eslint.org/docs/rules/no-warning-comments&quot;&gt;no-warning-comments&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11471&quot;&gt;#11471&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11472&quot;&gt;#11472&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe1a892f85b09c3d2fea05bef011530a678a6af5&quot;&gt;&lt;code&gt;fe1a892&lt;/code&gt;&lt;/a&gt; Build: bundle espree (fixes eslint/eslint.github.io&lt;a href=&quot;https://github.com/eslint/eslint/issues/546&quot;&gt;#546&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11467&quot;&gt;#11467&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.15.0 released</title>
    <link href="https://eslint.org/blog/2019/03/eslint-v5.15.0-released/"/>
    <updated>2019-03-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/03/eslint-v5.15.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/prefer-named-capture-group&quot;&gt;prefer-named-capture-group&lt;/a&gt; rule has been added. This rule encourages the use of &lt;a href=&quot;https://github.com/tc39/proposal-regexp-named-groups&quot;&gt;named capture groups&lt;/a&gt; over numbered capture groups.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec59ec09c8d001b8c04f9edc09994e2b0d0af0f9&quot;&gt;&lt;code&gt;ec59ec0&lt;/code&gt;&lt;/a&gt; New: add rule “&lt;a href=&quot;https://eslint.org/docs/rules/prefer-named-capture-group&quot;&gt;prefer-named-capture-group&lt;/a&gt;” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11381&quot;&gt;#11381&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11392&quot;&gt;#11392&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de5cbc526b30405e742b35d85d04361529d49ed4&quot;&gt;&lt;code&gt;de5cbc5&lt;/code&gt;&lt;/a&gt; Update: remove invalid defaults from core rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11415&quot;&gt;#11415&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11427&quot;&gt;#11427&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/64895185bde5233223648bcaf46f8deb72c9fb55&quot;&gt;&lt;code&gt;6489518&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; crash when code is “((let))” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11444&quot;&gt;#11444&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f3d71754932669332ad7623bcc4c1aef3897125&quot;&gt;&lt;code&gt;8f3d717&lt;/code&gt;&lt;/a&gt; Docs: Add non-attending TSC member info (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11411&quot;&gt;#11411&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce0777da5bc167fe0c529158fd8216d3eaf11565&quot;&gt;&lt;code&gt;ce0777d&lt;/code&gt;&lt;/a&gt; Docs: use more common spelling (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11417&quot;&gt;#11417&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a44f75073306e5ea4e6722654009a99884fbca4f&quot;&gt;&lt;code&gt;a44f750&lt;/code&gt;&lt;/a&gt; Upgrade: eslint-scope@4.0.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11461&quot;&gt;#11461&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4088c6c9d4578cd581ce8ff4385d90b58a75b755&quot;&gt;&lt;code&gt;4088c6c&lt;/code&gt;&lt;/a&gt; Build: Remove path.resolve in webpack build (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11462&quot;&gt;#11462&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb0650ba20cf9f9ad78dbaccfeb7e0e7ab56e31d&quot;&gt;&lt;code&gt;eb0650b&lt;/code&gt;&lt;/a&gt; Build: fix linting errors on master (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11428&quot;&gt;#11428&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db0c5e2a7f894b7cda71007b0ba43d7814b3fb2e&quot;&gt;&lt;code&gt;db0c5e2&lt;/code&gt;&lt;/a&gt; Build: switch from browserify to webpack (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11366&quot;&gt;#11366&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11398&quot;&gt;#11398&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee884754e4111e11994ff0df3f0c29e43e1dc3f2&quot;&gt;&lt;code&gt;ee88475&lt;/code&gt;&lt;/a&gt; Chore: add utils for rule tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11453&quot;&gt;#11453&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5018378131fd5190bbccca902c0cf4276ee1581a&quot;&gt;&lt;code&gt;5018378&lt;/code&gt;&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/require-unicode-regexp&quot;&gt;require-unicode-regexp&lt;/a&gt; on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11422&quot;&gt;#11422&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6ba633f56eca6be20fc4b0d9496a78b9498d578&quot;&gt;&lt;code&gt;f6ba633&lt;/code&gt;&lt;/a&gt; Chore: lint all files in the repo at the same time (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11425&quot;&gt;#11425&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9aabe34311f6189b87c9d8a1aa40f3513fed773&quot;&gt;&lt;code&gt;b9aabe3&lt;/code&gt;&lt;/a&gt; Chore: run fuzzer along with unit tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11404&quot;&gt;#11404&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.14.1 released</title>
    <link href="https://eslint.org/blog/2019/02/eslint-v5.14.1-released/"/>
    <updated>2019-02-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/02/eslint-v5.14.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d6e63930073e79e52890f552cc6e9a0646b7fb4&quot;&gt;&lt;code&gt;1d6e639&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;sort-keys&lt;/a&gt; throws Error at SpreadElement (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11402&quot;&gt;#11402&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11403&quot;&gt;#11403&lt;/a&gt;) (Krist Wongsuphasawat)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.14.0 released</title>
    <link href="https://eslint.org/blog/2019/02/eslint-v5.14.0-released/"/>
    <updated>2019-02-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/02/eslint-v5.14.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For clarity configuration of global variables has been enhanced with two additional values &lt;code&gt;readonly&lt;/code&gt; and &lt;code&gt;writable&lt;/code&gt;. All previous values are still valid.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; rule is now auto-fixable.&lt;/li&gt;
&lt;li&gt;Auto-fix was removed from &lt;a href=&quot;https://eslint.org/docs/rules/prefer-spread&quot;&gt;prefer-spread&lt;/a&gt; to avoid creating invalid code.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--init&lt;/code&gt; CLI command has been updated to streamline available options.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a23d1975d48841eafdead1a1357e2af842f688bc&quot;&gt;&lt;code&gt;a23d197&lt;/code&gt;&lt;/a&gt; New: add allowSingleLineBlocks opt. to &lt;a href=&quot;https://eslint.org/docs/rules/padded-blocks&quot;&gt;padded-blocks&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7145&quot;&gt;#7145&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11243&quot;&gt;#11243&lt;/a&gt;) (richie3366)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51c497298a15ad296a2b1f8fc397df687976b836&quot;&gt;&lt;code&gt;51c4972&lt;/code&gt;&lt;/a&gt; Update: Behavior of --init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11105&quot;&gt;#11105&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11332&quot;&gt;#11332&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/550de1e611a1e9af873bcb18d74cf2056e8d2e1b&quot;&gt;&lt;code&gt;550de1e&lt;/code&gt;&lt;/a&gt; Update: use &lt;code&gt;default&lt;/code&gt; keyword in JSON schema (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9929&quot;&gt;#9929&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11288&quot;&gt;#11288&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/983c5201210d7a4ffab0b3d05ab9919c0754e5ca&quot;&gt;&lt;code&gt;983c520&lt;/code&gt;&lt;/a&gt; Update: Use ‘readonly’ and ‘writable’ for globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11359&quot;&gt;#11359&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11384&quot;&gt;#11384&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c90dd7e25cf97833deddb11cfbc107a5663ac08&quot;&gt;&lt;code&gt;3c90dd7&lt;/code&gt;&lt;/a&gt; Update: remove &lt;a href=&quot;https://eslint.org/docs/rules/prefer-spread&quot;&gt;prefer-spread&lt;/a&gt; autofix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11330&quot;&gt;#11330&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11365&quot;&gt;#11365&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5eb3121b82c1837da0c3021b7d9384bb30832e36&quot;&gt;&lt;code&gt;5eb3121&lt;/code&gt;&lt;/a&gt; Update: add fixer for &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;&lt;code&gt;prefer-destructuring&lt;/code&gt;&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11151&quot;&gt;#11151&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11301&quot;&gt;#11301&lt;/a&gt;) (golopot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/533d240b0811f663494cb213b06cc9e51e1ff2d0&quot;&gt;&lt;code&gt;533d240&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-shadow-restricted-names&quot;&gt;no-shadow-restricted-names&lt;/a&gt; lets unassigned vars shadow undefined (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11341&quot;&gt;#11341&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0e823aef196a6564c87a78b72c1ef980ce67af9&quot;&gt;&lt;code&gt;d0e823a&lt;/code&gt;&lt;/a&gt; Update: Make --init run js config files through linter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9947&quot;&gt;#9947&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11337&quot;&gt;#11337&lt;/a&gt;) (Brian Kurek)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85a04b319e6dfde1458174cd1d8c9e7d33da0871&quot;&gt;&lt;code&gt;85a04b3&lt;/code&gt;&lt;/a&gt; Fix: adds conditional for separateRequires in &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10179&quot;&gt;#10179&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10980&quot;&gt;#10980&lt;/a&gt;) (Scott Stern)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab8ac6adaaf7a88e160899e7f438a4cfd655eb6e&quot;&gt;&lt;code&gt;ab8ac6a&lt;/code&gt;&lt;/a&gt; Fix: Support boundary spread elements in &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;sort-keys&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11158&quot;&gt;#11158&lt;/a&gt;) (Jakub Rożek)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e25e7aa3ea1e8c9b3cd3242acda6d4a5572c2c6a&quot;&gt;&lt;code&gt;e25e7aa&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/comma-spacing&quot;&gt;comma-spacing&lt;/a&gt; ignore comma before closing paren (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11295&quot;&gt;#11295&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11374&quot;&gt;#11374&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/84ce72fdeba082b7b132e4ac6b714fb1a93831b7&quot;&gt;&lt;code&gt;84ce72f&lt;/code&gt;&lt;/a&gt; Fix: Remove extraneous linefeeds in &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;&lt;code&gt;one-var&lt;/code&gt;&lt;/a&gt; fixer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10741&quot;&gt;#10741&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10955&quot;&gt;#10955&lt;/a&gt;) (st-sloth)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/92fc2f4f3faf8aeaae8a8e71db0de405404fb6c3&quot;&gt;&lt;code&gt;92fc2f4&lt;/code&gt;&lt;/a&gt; Fix: CircularJSON dependency warning (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11052&quot;&gt;#11052&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11314&quot;&gt;#11314&lt;/a&gt;) (Terry)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/104ae881d0b21e9c64e006b2a2c21535cef0ad28&quot;&gt;&lt;code&gt;104ae88&lt;/code&gt;&lt;/a&gt; Docs: Update governance doc with reviewers status (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11399&quot;&gt;#11399&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1f7c44ea9efbd9393889c1cc91b74260e0a8e02&quot;&gt;&lt;code&gt;a1f7c44&lt;/code&gt;&lt;/a&gt; Docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/space-before-blocks&quot;&gt;space-before-blocks&lt;/a&gt; correct code for “classes”: “never” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11391&quot;&gt;#11391&lt;/a&gt;) (PoziWorld)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14f58a2bec4d6aade0de22771c378b86b1e51959&quot;&gt;&lt;code&gt;14f58a2&lt;/code&gt;&lt;/a&gt; Docs: fix grammar in &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-spacing&quot;&gt;object-curly-spacing&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11389&quot;&gt;#11389&lt;/a&gt;) (PoziWorld)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3e9a27bbba30008a610df59e82b7192f0ecc3a3&quot;&gt;&lt;code&gt;d3e9a27&lt;/code&gt;&lt;/a&gt; Docs: fix grammar in “those who says” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11390&quot;&gt;#11390&lt;/a&gt;) (PoziWorld)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea8e8045ba0e6c1e1015104346af962f3e16fd81&quot;&gt;&lt;code&gt;ea8e804&lt;/code&gt;&lt;/a&gt; Docs: Add note about support for object spread (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11136&quot;&gt;#11136&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11395&quot;&gt;#11395&lt;/a&gt;) (Steven Thomas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95aa3fdb392d265e6c3d813d54076458e88e7ad8&quot;&gt;&lt;code&gt;95aa3fd&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad7a38097c32a91e5a831ef1bc8933601532576c&quot;&gt;&lt;code&gt;ad7a380&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e0c4176eff085498b813f8ba1732d7ed6ee44f8&quot;&gt;&lt;code&gt;3e0c417&lt;/code&gt;&lt;/a&gt; Docs: Fix grammar in “there’s nothing prevent you” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11385&quot;&gt;#11385&lt;/a&gt;) (PoziWorld)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de988bc909b491366ad0cd9bc83f4d6de42d041a&quot;&gt;&lt;code&gt;de988bc&lt;/code&gt;&lt;/a&gt; Docs: Fix grammar: Spacing improve -&amp;gt; Spacing improves (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11386&quot;&gt;#11386&lt;/a&gt;) (PoziWorld)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e56897db3e254e0aef6d2fe3274157fc379c79e&quot;&gt;&lt;code&gt;1e56897&lt;/code&gt;&lt;/a&gt; Docs: “the function actually use”: use -&amp;gt; uses (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11380&quot;&gt;#11380&lt;/a&gt;) (PoziWorld)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a71bc95a7e961b1b1b77022645e0bd9cdd08dc0&quot;&gt;&lt;code&gt;5a71bc9&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82a58ce26b282fd80335b3ac4fc88f21266c3ba1&quot;&gt;&lt;code&gt;82a58ce&lt;/code&gt;&lt;/a&gt; Docs: Update README team and sponsors (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/546d355ace65631e27de859baea3ffcc50e0ad2c&quot;&gt;&lt;code&gt;546d355&lt;/code&gt;&lt;/a&gt; Docs: Update README with latest sponsors/team data (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11378&quot;&gt;#11378&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c0df9febb7c7e045ababc10b88dbcbb3f28c724c&quot;&gt;&lt;code&gt;c0df9fe&lt;/code&gt;&lt;/a&gt; Docs: &lt;code&gt;...&lt;/code&gt; is not an operator (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11232&quot;&gt;#11232&lt;/a&gt;) (Felix Kling)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ecfdefaeadb772f8b96ffe37c4a2c97fde0da16&quot;&gt;&lt;code&gt;7ecfdef&lt;/code&gt;&lt;/a&gt; Docs: update typescript parser (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/11368&quot;&gt;#11368&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11369&quot;&gt;#11369&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/173eb38cdb3e4673cba947521f27158828186d77&quot;&gt;&lt;code&gt;173eb38&lt;/code&gt;&lt;/a&gt; Docs: Clarify ecmaVersion doesn’t imply globals (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9812&quot;&gt;#9812&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11364&quot;&gt;#11364&lt;/a&gt;) (Keith Maxwell)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/389362a06ac6601512b872d3e843c7371f2a1bcc&quot;&gt;&lt;code&gt;389362a&lt;/code&gt;&lt;/a&gt; Docs: clarify motivation for &lt;a href=&quot;https://eslint.org/docs/rules/no-prototype-builtins&quot;&gt;no-prototype-builtins&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11356&quot;&gt;#11356&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4dd19a3c4c037adc860a65e96f2ba3eeccace1de&quot;&gt;&lt;code&gt;4dd19a3&lt;/code&gt;&lt;/a&gt; Docs: mention ‘&lt;a href=&quot;https://eslint.org/docs/rules/prefer-spread&quot;&gt;prefer-spread&lt;/a&gt;’ in docs of ‘&lt;a href=&quot;https://eslint.org/docs/rules/no-useless-call&quot;&gt;no-useless-call&lt;/a&gt;’ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11348&quot;&gt;#11348&lt;/a&gt;) (Klaus Meinhardt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fd83d5ec47a6a7b81cd8801c3bd63d27ea1c7c4&quot;&gt;&lt;code&gt;4fd83d5&lt;/code&gt;&lt;/a&gt; Docs: fix a misleading example in &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11350&quot;&gt;#11350&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c02932f1b2e2a85809e84617efa1b8836c19cfb&quot;&gt;&lt;code&gt;0c02932&lt;/code&gt;&lt;/a&gt; Upgrade: espree@5.0.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11401&quot;&gt;#11401&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f1d3a7ee7c82365989e219b1dae379f08f6dd526&quot;&gt;&lt;code&gt;f1d3a7e&lt;/code&gt;&lt;/a&gt; Upgrade: some deps (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11372&quot;&gt;#11372&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11373&quot;&gt;#11373&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9441ce77b7228f2c4562e158a10905afe11f31f2&quot;&gt;&lt;code&gt;9441ce7&lt;/code&gt;&lt;/a&gt; Chore: update incorrect tests to fix build failing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11354&quot;&gt;#11354&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Funding ESLint&#39;s Future</title>
    <link href="https://eslint.org/blog/2019/02/funding-eslint-future/"/>
    <updated>2019-02-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/02/funding-eslint-future/</id>
    <content type="html">&lt;p&gt;&lt;img src=&quot;https://eslint.org/assets/images/blog-covers/sponsorship-funding.png&quot; alt=&quot;Facebook and Airbnb donate to ESLint&quot; /&gt;&lt;/p&gt;
&lt;p&gt;June 2019 will mark six years since ESLint was first released. What began as a side project for a very narrow use case has grown into the most popular JavaScript linter in the world, with over 6.5 million npm downloads &lt;em&gt;every week&lt;/em&gt;. ESLint is now used by both large companies and individual developers to help find and fix problems with JavaScript code every day. In addition, ESLint has been flexible enough to work with languages derived from JavaScript, such as &lt;a href=&quot;https://www.npmjs.com/package/eslint-plugin-flowtype&quot;&gt;Flow&lt;/a&gt; and &lt;a href=&quot;https://typescript-eslint.io/&quot;&gt;TypeScript&lt;/a&gt;, and even helps mobile developers by linting &lt;a href=&quot;https://www.npmjs.com/package/eslint-plugin-react-native&quot;&gt;React Native&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;All of this means that ESLint has become an important part of the JavaScript ecosystem. It’s a tool that the JavaScript community depends on and expects to be available, performant, and secure. These expectations are currently being met by an all-volunteer team who spends their free time during lunch breaks, nights, and weekends maintaining ESLint. And while that has worked well for normal maintenance, it’s grown difficult to deal with more involved issues such as roadmap planning and security issues.&lt;/p&gt;
&lt;p&gt;In short, we’ve realized that in order for ESLint to continue to grow and evolve, we need to get more organized and set up a way to fund ESLint’s development going forward.&lt;/p&gt;
&lt;h2 id=&quot;the-eslint-collective&quot; tabindex=&quot;-1&quot;&gt;The ESLint Collective&lt;/h2&gt;
&lt;p&gt;Today, we are happy to announce the &lt;a href=&quot;https://opencollective.com/eslint&quot;&gt;ESLint Collective&lt;/a&gt; on Open Collective. Open Collective is a secure way for people to sustain and support open source projects. The funds taken in and paid out are publicly available on each collective’s page, so there is 100% transparency around the money a collective uses. Open Collective has already helped other JavaScript ecosystem projects such as &lt;a href=&quot;https://opencollective.com/webpack&quot;&gt;Webpack&lt;/a&gt; and &lt;a href=&quot;https://opencollective.com/babel&quot;&gt;Babel&lt;/a&gt; to fund their ongoing development, and the ESLint team is happy to join them on what has proven to be a great option for open source sustainability.&lt;/p&gt;
&lt;p&gt;Some of the benefits of working with Open Collective include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Full Transparency.&lt;/strong&gt; Everyone gets to see where money is coming from and where it’s going.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Individual and Corporate Sponsors.&lt;/strong&gt; Open Collective makes it easy for both individuals and companies to sponsor open source projects.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Potential Tax Benefits.&lt;/strong&gt; Because funds are paid to the Open Source Collective, a 501©(6) organization in the U.S., there may be tax benefits for some donors (please check with your accountant).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatic Invoicing.&lt;/strong&gt; For corporate sponsors, Open Collective automatically generates and sends invoices for tracking purposes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Open Participation.&lt;/strong&gt; Anyone can request reimbursement for funds spent helping the ESLint project and ESLint can pay out to anyone.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;how-will-the-money-be-spent%3F&quot; tabindex=&quot;-1&quot;&gt;How will the money be spent?&lt;/h2&gt;
&lt;p&gt;The ESLint team has a lot of ideas about how to proceed going forward. Depending on the amount we raise, here are some of the things we’re planning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Paying team members for maintenance and development.&lt;/strong&gt; All ESLint team members are still contributing in their spare time. Having the option to work part-time or full-time on ESLint, and be compensated for it, would allow for faster and more consistent development.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rewarding contributions from the community.&lt;/strong&gt; We’d like to reward everyone who contributes to ESLint, whether it’s a one-time contribution or ongoing contributions. We are still figuring out the details, but rewarding people with everything from stickers and t-shirts to cash payouts for significant contributions are things we are thinking about right now.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improve documentation.&lt;/strong&gt; ESLint’s documentation hasn’t had a significant overhaul since the project was first released. We feel there are a lot of ways to improve the documentation, including potentially contracting an information architect or technical writer to improve our documentation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Better communication and support.&lt;/strong&gt; By paying team members part-time or full-time, that also opens up the possibility of sending team members to meetups, companies, and conferences to interact with the community and better understand the problems developers are facing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Developing a Roadmap.&lt;/strong&gt; For a while, the ESLint team has mostly worked on a one-off basis in terms of which features to implement. Without knowing who would be able to spend what amount of time on the project, it was difficult to do long-term planning and develop a roadmap for the future. This is something we will finally be able to do when we are a self-sustaining project.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;our-goal%3A-%2420%2C000-per-month&quot; tabindex=&quot;-1&quot;&gt;Our Goal: $20,000 per month&lt;/h2&gt;
&lt;p&gt;In order to achieve everything we have in mind, we believe that we will need $20,000 per month. With this amount, we can sustain ESLint for the foreseeable future.&lt;/p&gt;
&lt;h2 id=&quot;introducing-our-first-sponsors&quot; tabindex=&quot;-1&quot;&gt;Introducing our first sponsors&lt;/h2&gt;
&lt;p&gt;We’re also excited to announce our first sponsors. &lt;a href=&quot;https://facebook.com/&quot;&gt;Facebook&lt;/a&gt; and &lt;a href=&quot;https://airbnb.com/&quot;&gt;Airbnb&lt;/a&gt; have both pledged $1,000 per month to support ESLint.&lt;/p&gt;
&lt;p&gt;Additionally, &lt;a href=&quot;https://frontendmasters.com/&quot;&gt;Frontend Masters&lt;/a&gt; has donated $200 to support ESLint.&lt;/p&gt;
&lt;p&gt;If your company also uses ESLint to find and fix problems in your JavaScript code, please ask them to join these fantastic companies in &lt;a href=&quot;https://opencollective.com/eslint&quot;&gt;sponsoring ESLint&lt;/a&gt;. (All sponsors above $200 per month get their logos on both the ESLint README and on the homepage of &lt;a href=&quot;http://eslint.org/&quot;&gt;eslint.org&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;We’d like to thank Eric Nakagawa at Facebook, Jordan Harband at Airbnb, Marc Grabanski at Frontend Masters, and Pia Mancini at Open Collective for supporting our early sponsorship efforts at their respective companies.&lt;/p&gt;
&lt;h2 id=&quot;the-best-is-yet-to-come-for-eslint&quot; tabindex=&quot;-1&quot;&gt;The best is yet to come for ESLint&lt;/h2&gt;
&lt;p&gt;We are grateful to the ESLint community for your continued support and feedback, and we’re looking forward to continuing to interact and grow with you. We truly believe that the best is yet to come for ESLint, and with financial support from the companies that use ESLint, we will be able to achieve our vision.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.13.0 released</title>
    <link href="https://eslint.org/blog/2019/02/eslint-v5.13.0-released/"/>
    <updated>2019-02-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/02/eslint-v5.13.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Configuration of &lt;code&gt;globals&lt;/code&gt; has been improved with three new options: “off”, “readable”, and “writeable”.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“off”: Completely disables a global variable that was previously defined.&lt;/li&gt;
&lt;li&gt;“readable”: Equivalent to the old &lt;code&gt;false&lt;/code&gt; value, “readable” global variables are in scope but cannot be written to.&lt;/li&gt;
&lt;li&gt;“writeable”: Equivalent to the old &lt;code&gt;true&lt;/code&gt; value, “writeable” global variables can be read from and written to.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Configurations using the old &lt;code&gt;true&lt;/code&gt;/&lt;code&gt;false&lt;/code&gt; values will continue to work, but we encourage you to use the newer, more explicit options.&lt;/p&gt;
&lt;p&gt;Check out the documentation on &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#specifying-globals&quot;&gt;specifying globals&lt;/a&gt; for more details!&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a3c3ff1d91e8f39943efc4a7d2bf6927d68d37e&quot;&gt;&lt;code&gt;0a3c3ff&lt;/code&gt;&lt;/a&gt; New: Allow globals to be disabled/configured with strings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9940&quot;&gt;#9940&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11338&quot;&gt;#11338&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b5143bfc09e53d8da8f63421ade093b7593f4f51&quot;&gt;&lt;code&gt;b5143bf&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/for-direction&quot;&gt;for-direction&lt;/a&gt; detection false positives/negatives (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11254&quot;&gt;#11254&lt;/a&gt;) (Ruben Bridgewater)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b14ad1003c7df9a37621dea55c6d6d0484adc05&quot;&gt;&lt;code&gt;5b14ad1&lt;/code&gt;&lt;/a&gt; Fix: false positive in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11306&quot;&gt;#11306&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11308&quot;&gt;#11308&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6567c4f6665df85c3347388b29d8193cc8208d63&quot;&gt;&lt;code&gt;6567c4f&lt;/code&gt;&lt;/a&gt; Fix: only remove arrow before body in &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11305&quot;&gt;#11305&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11307&quot;&gt;#11307&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fa2f370affa4814dbdda278f9859d0172d4b7aa2&quot;&gt;&lt;code&gt;fa2f370&lt;/code&gt;&lt;/a&gt; Docs: update rule configuration values in examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11323&quot;&gt;#11323&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c464e2744ec76e7e9c6c5af0f6162c92187f1ece&quot;&gt;&lt;code&gt;c464e27&lt;/code&gt;&lt;/a&gt; Docs: Rename &lt;code&gt;result&lt;/code&gt; -&amp;gt; &lt;code&gt;foo&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11210&quot;&gt;#11210&lt;/a&gt;) (Alexis Tyler)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/91c8884971f5e57f5f7490d8daf92c4a9a489836&quot;&gt;&lt;code&gt;91c8884&lt;/code&gt;&lt;/a&gt; Chore: use local function to append “s” instead of a package (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11293&quot;&gt;#11293&lt;/a&gt;) (Timo Tijhof)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9005e632d13476880c55f7e3c8a6e450762a5171&quot;&gt;&lt;code&gt;9005e63&lt;/code&gt;&lt;/a&gt; Chore: increase &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; test coverage (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11299&quot;&gt;#11299&lt;/a&gt;) (Redmond Tran)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dccee63cf41234180c71bf0fe01b165c9078fc69&quot;&gt;&lt;code&gt;dccee63&lt;/code&gt;&lt;/a&gt; Chore: avoid hard-coding the list of core rules in eslint:recommended (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11336&quot;&gt;#11336&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1fd6f54d92efe615bcae529006221e122dbe9e6&quot;&gt;&lt;code&gt;c1fd6f5&lt;/code&gt;&lt;/a&gt; Chore: remove undocumented &lt;code&gt;Linter#rules&lt;/code&gt; property (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11335&quot;&gt;#11335&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/36e335681d61cbe3c83b653b7cc5f95730f1d86e&quot;&gt;&lt;code&gt;36e3356&lt;/code&gt;&lt;/a&gt; Chore: remove dead code for loading rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11334&quot;&gt;#11334&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>The future of TypeScript on ESLint</title>
    <link href="https://eslint.org/blog/2019/01/future-typescript-eslint/"/>
    <updated>2019-01-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/01/future-typescript-eslint/</id>
    <content type="html">&lt;p&gt;A couple of weeks ago, the TypeScript team shared their &lt;a href=&quot;https://github.com/Microsoft/TypeScript/issues/29288&quot;&gt;roadmap&lt;/a&gt; in which they described formally adopting ESLint in their repo and working to improve TypeScript compatibility for ESLint:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 id=&quot;linting&quot; tabindex=&quot;-1&quot;&gt;Linting&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Semantic rules in ESLint
&lt;ul&gt;
&lt;li&gt;Parity with TSLint&lt;/li&gt;
&lt;li&gt;Speed &amp;amp; scalability&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Editor integration for ESLint&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In a survey we ran in VS Code a few months back, the most frequent theme we heard from users was that the linting experience left much to be desired. Since part of our team is dedicated to editing experiences in JavaScript, our editor team set out to add support for both TSLint and ESLint. However, we noticed that there were a few architectural issues with the way TSLint rules operate that impacted performance. Fixing TSLint to operate more efficiently would require a different API which would break existing rules (unless an interop API was built like what wotan provides).&lt;/p&gt;
&lt;p&gt;Meanwhile, ESLint already has the more-performant architecture we’re looking for from a linter. Additionally, different communities of users often have lint rules (e.g. rules for React Hooks or Vue) that are built for ESLint, but not TSLint.&lt;/p&gt;
&lt;p&gt;Given this, our editor team will be focusing on leveraging ESLint rather than duplicating work. For scenarios that ESLint currently doesn’t cover (e.g. semantic linting or program-wide linting), we’ll be working on sending contributions to bring ESLint’s TypeScript support to parity with TSLint. As an initial testbed of how this works in practice, we’ll be switching the TypeScript repository over to using ESLint, and sending any new rules upstream.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We, just like a lot of the JavaScript and TypeScript communities, were very excited about this announcement. Several members of the ESLint team have been working on improving TypeScript compatibility over the past couple of years, including James Henry, Kai Cataldo, Kevin Partington, Toru Nagashima, and Nicholas Zakas. That work focused mainly on the TypeScript parser, &lt;a href=&quot;https://github.com/eslint/typescript-eslint-parser&quot;&gt;&lt;code&gt;typescript-eslint-parser&lt;/code&gt;&lt;/a&gt; (and partly on &lt;a href=&quot;https://github.com/bradzacher/eslint-plugin-typescript&quot;&gt;&lt;code&gt;eslint-plugin-typescript&lt;/code&gt;&lt;/a&gt;, which was not maintained by the ESLint team but had been maintained by Nicholas and James until recently). The Typescript parser would undoubtedly become the centerpiece of the TypeScript-in-ESLint story going forward; as such, we wanted to make sure that it would be properly maintained.&lt;/p&gt;
&lt;h2 id=&quot;announcing-the-typescript-eslint-project&quot; tabindex=&quot;-1&quot;&gt;Announcing the &lt;code&gt;typescript-eslint&lt;/code&gt; project&lt;/h2&gt;
&lt;p&gt;James Henry, who has long been the driving force behind TypeScript compatibility for ESLint, has started the &lt;a href=&quot;https://github.com/typescript-eslint/typescript-eslint&quot;&gt;&lt;code&gt;typescript-eslint&lt;/code&gt;&lt;/a&gt; project as a centralized repository for all things related to TypeScript ESLint compatibility. This will be the new home of the TypeScript parser, &lt;code&gt;eslint-plugin-typescript&lt;/code&gt;, and any other utilities that will make the TypeScript ESLint experience as seamless as possible.&lt;/p&gt;
&lt;p&gt;While the ESLint team won’t be formally involved in the new project, we are fully supportive of James’ efforts and will be keeping lines of communication open to ensure the best ESLint experience for TypeScript developers.&lt;/p&gt;
&lt;h2 id=&quot;what-this-means-going-forward&quot; tabindex=&quot;-1&quot;&gt;What this means going forward&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;The ESLint team will no longer be maintaining &lt;code&gt;typescript-eslint-parser&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;The repository will be archived as of today&lt;/li&gt;
&lt;li&gt;There will be no further releases of &lt;code&gt;typescript-eslint-parser&lt;/code&gt; on npm&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Anyone using &lt;code&gt;typescript-eslint-parser&lt;/code&gt; should use &lt;code&gt;@typescript-eslint/parser&lt;/code&gt; instead&lt;/li&gt;
&lt;li&gt;Those interested in how TypeScript support is coming along should follow the &lt;code&gt;typescript-eslint&lt;/code&gt; repository&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once again, we are very excited to welcome the TypeScript community into the ESLint community and look forward to seeing how James and the &lt;code&gt;typescript-eslint&lt;/code&gt; team make ESLint the best choice for linting TypeScript code.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.12.1 released</title>
    <link href="https://eslint.org/blog/2019/01/eslint-v5.12.1-released/"/>
    <updated>2019-01-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/01/eslint-v5.12.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aa56247746a0095996a41dd03bdbbf659f0f93b6&quot;&gt;&lt;code&gt;aa56247&lt;/code&gt;&lt;/a&gt; Fix: avoid loading core rules dynamically from FS in Linter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11278&quot;&gt;#11278&lt;/a&gt;) (Peter Metz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c40344566eff2e77a6ae2b2d2dbdbd4ad3e76b67&quot;&gt;&lt;code&gt;c403445&lt;/code&gt;&lt;/a&gt; Fix: warn constant on RHS of || in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11181&quot;&gt;#11181&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11253&quot;&gt;#11253&lt;/a&gt;) (Merlin Mason)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9194f45ac7d521119a53773bf02b81670bad526e&quot;&gt;&lt;code&gt;9194f45&lt;/code&gt;&lt;/a&gt; Fix: Manage severity of 1 with TAP reporter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11110&quot;&gt;#11110&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11221&quot;&gt;#11221&lt;/a&gt;) (Gabriel Cousin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/04450bb7ed20f2412102538b238119d9764b4dc9&quot;&gt;&lt;code&gt;04450bb&lt;/code&gt;&lt;/a&gt; Docs: clarify process for adding committers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11272&quot;&gt;#11272&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ffcf26c1c83efe7d7cf2d87f1063695ae653709&quot;&gt;&lt;code&gt;3ffcf26&lt;/code&gt;&lt;/a&gt; Docs: add @g-plane as committer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11277&quot;&gt;#11277&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/000f4952ae6a4311fbbc3ed36c481235fcb0b64b&quot;&gt;&lt;code&gt;000f495&lt;/code&gt;&lt;/a&gt; Docs: fix example for &lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;sort-imports&lt;/a&gt; ignoreDeclarationSort (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11242&quot;&gt;#11242&lt;/a&gt;) (Remco Haszing)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c0bf2ca92d83125a1fa000c9c4250bae6b4fc21&quot;&gt;&lt;code&gt;7c0bf2c&lt;/code&gt;&lt;/a&gt; Docs: Add &lt;code&gt;npx&lt;/code&gt; usage to Getting Started guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11249&quot;&gt;#11249&lt;/a&gt;) (eyal0803)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da9174e0798c1d785ddabb3ae405860fc5b89311&quot;&gt;&lt;code&gt;da9174e&lt;/code&gt;&lt;/a&gt; Docs: fixes typo peerDepencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11252&quot;&gt;#11252&lt;/a&gt;) (Christian Kühl)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c31625f19176664ef76dcf088ce50703c41c324&quot;&gt;&lt;code&gt;9c31625&lt;/code&gt;&lt;/a&gt; Docs: Improve custom formatter docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11258&quot;&gt;#11258&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb5c4014f16be1c2003ed46ce9560d0d8a567d0f&quot;&gt;&lt;code&gt;eb5c401&lt;/code&gt;&lt;/a&gt; Chore: use meta.messages in some rules (2/4) (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9870&quot;&gt;#9870&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10773&quot;&gt;#10773&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.12.0 released</title>
    <link href="https://eslint.org/blog/2019/01/eslint-v5.12.0-released/"/>
    <updated>2019-01-04T00:00:00Z</updated>
    <id>https://eslint.org/blog/2019/01/eslint-v5.12.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt; rule has a new &lt;code&gt;ignoreDeclarationSort&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d91e7d28e5eba79a6032165cdef5d4549d26462&quot;&gt;&lt;code&gt;0d91e7d&lt;/code&gt;&lt;/a&gt; Update: Add &lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;sort-imports&lt;/a&gt; ignoreDeclarationSort (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11019&quot;&gt;#11019&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11040&quot;&gt;#11040&lt;/a&gt;) (Remco Haszing)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bfff77ad4eaa02e2e62481c986634df38d5db6e5&quot;&gt;&lt;code&gt;bfff77a&lt;/code&gt;&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-param-reassign&quot;&gt;no-param-reassign&lt;/a&gt; parameter in ternary operator (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11236&quot;&gt;#11236&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11239&quot;&gt;#11239&lt;/a&gt;) (周昊宇)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/166853d9c59db493f0b1bb68a67ad868662a4205&quot;&gt;&lt;code&gt;166853d&lt;/code&gt;&lt;/a&gt; Upgrade: eslint-plugin-eslint-plugin@2.0.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11220&quot;&gt;#11220&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/258b6541f61dc3a9ae64e200680766a11c3dd316&quot;&gt;&lt;code&gt;258b654&lt;/code&gt;&lt;/a&gt; Upgrade: require-uncached renamed to import-fresh (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11066&quot;&gt;#11066&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f92d6f05c4dcd4a3a0616871e10b31edae9dfad5&quot;&gt;&lt;code&gt;f92d6f0&lt;/code&gt;&lt;/a&gt; Build: Add karma-chrome-launcher support (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11027&quot;&gt;#11027&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.11.1 released</title>
    <link href="https://eslint.org/blog/2018/12/eslint-v5.11.1-released/"/>
    <updated>2018-12-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/12/eslint-v5.11.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de79f1026b7035f0296d7876f1db64f225cca1b8&quot;&gt;&lt;code&gt;de79f10&lt;/code&gt;&lt;/a&gt; Fix: handle optional catch bindings in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-catch&quot;&gt;no-useless-catch&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11205&quot;&gt;#11205&lt;/a&gt;) (Colin Ihrig)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.11.0 released</title>
    <link href="https://eslint.org/blog/2018/12/eslint-v5.11.0-released/"/>
    <updated>2018-12-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/12/eslint-v5.11.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;One new rule has been added: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-catch&quot;&gt;&lt;code&gt;no-useless-catch&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; rule now supports a &lt;code&gt;VariableDeclarator: &amp;quot;first&amp;quot;&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4395f671442a7e0be956382c24cce38025a6df6&quot;&gt;&lt;code&gt;b4395f6&lt;/code&gt;&lt;/a&gt; New: add option &lt;code&gt;first&lt;/code&gt; for VariableDeclarator in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8976&quot;&gt;#8976&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11193&quot;&gt;#11193&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b5a60284670a3ab1281b206941ed38faf2ea10c&quot;&gt;&lt;code&gt;2b5a602&lt;/code&gt;&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-catch&quot;&gt;no-useless-catch&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11174&quot;&gt;#11174&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11198&quot;&gt;#11198&lt;/a&gt;) (Alexander Grasley)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4242314215a6f35e432860433906f47af1a29724&quot;&gt;&lt;code&gt;4242314&lt;/code&gt;&lt;/a&gt; Update: handle computed properties in &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11084&quot;&gt;#11084&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11113&quot;&gt;#11113&lt;/a&gt;) (Bence Dányi)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/06b3b5bfcf0429c5078d4f4af3c03bb777e4f022&quot;&gt;&lt;code&gt;06b3b5b&lt;/code&gt;&lt;/a&gt; Fix: Account for comments in &lt;a href=&quot;https://eslint.org/docs/rules/implicit-arrow-linebreak&quot;&gt;implicit-arrow-linebreak&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10545&quot;&gt;#10545&lt;/a&gt;) (Mark de Dios)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/100930493d9ab802a94dac5c761515b12241ddd2&quot;&gt;&lt;code&gt;1009304&lt;/code&gt;&lt;/a&gt; Docs: add a note for &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-expressions&quot;&gt;no-unused-expressions&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11169&quot;&gt;#11169&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11192&quot;&gt;#11192&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88f99d31b88a4cde4563bc4a6f4c41f0cc557885&quot;&gt;&lt;code&gt;88f99d3&lt;/code&gt;&lt;/a&gt; Docs: clarify how to use configs in plugins (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11199&quot;&gt;#11199&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bcf558b2f7036f487af2bdb2b2d34b6cdf7fc174&quot;&gt;&lt;code&gt;bcf558b&lt;/code&gt;&lt;/a&gt; Docs: Clarify the &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11195&quot;&gt;#11195&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a470eb73d52fae0f0bc48de5a487e23cf78fcfa9&quot;&gt;&lt;code&gt;a470eb7&lt;/code&gt;&lt;/a&gt; Docs: Fix &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt; description (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11196&quot;&gt;#11196&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8abc8afe71691b747cbd1819a13d896e8aa5b92a&quot;&gt;&lt;code&gt;8abc8af&lt;/code&gt;&lt;/a&gt; Docs: Remove a misleading example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11204&quot;&gt;#11204&lt;/a&gt;) (Bogdan Gradinariu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/733d93618a99758a05453ab94505a9f1330950e0&quot;&gt;&lt;code&gt;733d936&lt;/code&gt;&lt;/a&gt; Docs: link to JSDoc EOL blogpost in &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;valid-jsdoc&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/rules/require-jsdoc&quot;&gt;require-jsdoc&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11191&quot;&gt;#11191&lt;/a&gt;) (Nathan Diddle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d5eb108e17f676d0e4fcddeb1211b4bdfac760c1&quot;&gt;&lt;code&gt;d5eb108&lt;/code&gt;&lt;/a&gt; Docs: Ensure &lt;code&gt;triage&lt;/code&gt; label is added to new issues (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11182&quot;&gt;#11182&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/617a2874ed085bca36ca289aac55e3b7f7ce937e&quot;&gt;&lt;code&gt;617a287&lt;/code&gt;&lt;/a&gt; Docs: add missing deprecation notices for jsdoc rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11171&quot;&gt;#11171&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.10.0 released</title>
    <link href="https://eslint.org/blog/2018/12/eslint-v5.10.0-released/"/>
    <updated>2018-12-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/12/eslint-v5.10.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;&lt;code&gt;padding-line-between-statements&lt;/code&gt;&lt;/a&gt; rule has new statement types: multiline-const, multiline-let, multiline-var, singleline-const, singleline-let, and singleline-var.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/require-jsdoc&quot;&gt;&lt;code&gt;require-jsdoc&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;&lt;code&gt;valid-jsdoc&lt;/code&gt;&lt;/a&gt; rules have been deprecated, following our previously announced decision to &lt;a href=&quot;https://eslint.org/blog/2018/11/jsdoc-end-of-life&quot;&gt;end support for JSDoc in ESLint&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b0f517cd317e5f1b99a1e8a0392332bd8a2e231&quot;&gt;&lt;code&gt;4b0f517&lt;/code&gt;&lt;/a&gt; Update: single- and multiline const, let, var statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10721&quot;&gt;#10721&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10919&quot;&gt;#10919&lt;/a&gt;) (Tom Panier)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9666abaf46c841fba7b5d4e53c6998cd25b9bc33&quot;&gt;&lt;code&gt;9666aba&lt;/code&gt;&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/space-infix-ops&quot;&gt;space-infix-ops&lt;/a&gt; reports violating operator (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10934&quot;&gt;#10934&lt;/a&gt;) (Bence Dányi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4490d7af529d4ecc18b6874f1d838869656da58a&quot;&gt;&lt;code&gt;4490d7a&lt;/code&gt;&lt;/a&gt; Update: deprecate &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;valid-jsdoc&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/rules/require-jsdoc&quot;&gt;require-jsdoc&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11145&quot;&gt;#11145&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62fd2b93448966331db3eb2dfbe4e1273eb032b2&quot;&gt;&lt;code&gt;62fd2b9&lt;/code&gt;&lt;/a&gt; Update: Amend &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; to validate &lt;code&gt;default&lt;/code&gt; keywords (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11097&quot;&gt;#11097&lt;/a&gt;) (Bin Ury)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3025cddf0a2ea8461ce05575098a5714fcf6278d&quot;&gt;&lt;code&gt;3025cdd&lt;/code&gt;&lt;/a&gt; Update: don’t &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; leading &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;semi&lt;/a&gt; in line after import (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11082&quot;&gt;#11082&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11085&quot;&gt;#11085&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c14f717f4c32860766185da47f64f8eb0c2d2998&quot;&gt;&lt;code&gt;c14f717&lt;/code&gt;&lt;/a&gt; Fix: Update all-files-ignored.txt message to be less confusing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11075&quot;&gt;#11075&lt;/a&gt;) (&lt;a href=&quot;http://z.ky/&quot;&gt;z.ky&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3bf0332508b921cb660c2e8a1ab7ddf46a2013b6&quot;&gt;&lt;code&gt;3bf0332&lt;/code&gt;&lt;/a&gt; Fix: fix the fixer of lone comma with comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10632&quot;&gt;#10632&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11154&quot;&gt;#11154&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c0a80d0ca3c80ca27694fc8aedcf84b72bfd9465&quot;&gt;&lt;code&gt;c0a80d0&lt;/code&gt;&lt;/a&gt; Fix: Do not strip underscores in &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; allow (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11000&quot;&gt;#11000&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11001&quot;&gt;#11001&lt;/a&gt;) (Luke Page)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54dfa602f62e6d183d57d60d5fdd417a263f479e&quot;&gt;&lt;code&gt;54dfa60&lt;/code&gt;&lt;/a&gt; Fix: Typo in function comment parameters (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11111&quot;&gt;#11111&lt;/a&gt;) (Pierre Maoui)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f3573dda3dc35bc220e945686cc835eaad0ac2c&quot;&gt;&lt;code&gt;9f3573d&lt;/code&gt;&lt;/a&gt; Docs: Clarify the CLIEngine options (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10995&quot;&gt;#10995&lt;/a&gt;) (Ed Morley)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60dfb6c623dfe829e5350dabe507e7850c1beacf&quot;&gt;&lt;code&gt;60dfb6c&lt;/code&gt;&lt;/a&gt; Docs: Update issue templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11163&quot;&gt;#11163&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/958987aa6f5630faa051d8f822f0200faff41924&quot;&gt;&lt;code&gt;958987a&lt;/code&gt;&lt;/a&gt; Docs: Fix link to rule &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-rename&quot;&gt;no-useless-rename&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11165&quot;&gt;#11165&lt;/a&gt;) (Brian)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c6471ed6feb3e71e239379a7042deb9b8ab3cf39&quot;&gt;&lt;code&gt;c6471ed&lt;/code&gt;&lt;/a&gt; Docs: fix typo in issue-templates/new-rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11149&quot;&gt;#11149&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a675c89573836adaf108a932696b061946abf1e6&quot;&gt;&lt;code&gt;a675c89&lt;/code&gt;&lt;/a&gt; Docs: (Grammar) “the setup” -&amp;gt; “to set up” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11117&quot;&gt;#11117&lt;/a&gt;) (MarvinJWendt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf296bdabf0dbbfbae491419e38aee4ecd63ec71&quot;&gt;&lt;code&gt;cf296bd&lt;/code&gt;&lt;/a&gt; Docs: switch incorrect example with correct one (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11107&quot;&gt;#11107&lt;/a&gt;) (Romain Le Quellec)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d2d500ca5dff307189b9d4161a5e7b8282557dd6&quot;&gt;&lt;code&gt;d2d500c&lt;/code&gt;&lt;/a&gt; Docs: &lt;a href=&quot;https://eslint.org/docs/rules/no-console&quot;&gt;no-console&lt;/a&gt;#When-Not-To-Use provides incorrect rule snippet (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11093&quot;&gt;#11093&lt;/a&gt;) (Lawrence Chou)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8507260c2091d18488fde20e466639d1a7f913c&quot;&gt;&lt;code&gt;f850726&lt;/code&gt;&lt;/a&gt; Upgrade: Espree v5.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11161&quot;&gt;#11161&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5da378ac922d732ca1765f08edee0face1b1b924&quot;&gt;&lt;code&gt;5da378a&lt;/code&gt;&lt;/a&gt; Upgrade: eslint-release@1.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11073&quot;&gt;#11073&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/709190f8c5d7559b1e0915e25af60b50a94ba1c7&quot;&gt;&lt;code&gt;709190f&lt;/code&gt;&lt;/a&gt; Build: fix test failure on Node 11 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11100&quot;&gt;#11100&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd7b0cb019d94964930d30fec36f7b22ef072822&quot;&gt;&lt;code&gt;dd7b0cb&lt;/code&gt;&lt;/a&gt; Chore: refactor template literal feature detection in ‘&lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;quotes&lt;/a&gt;’ rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11125&quot;&gt;#11125&lt;/a&gt;) (Bryan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4bcdfd07d514fd7a6b8672d33703d0b6c606f214&quot;&gt;&lt;code&gt;4bcdfd0&lt;/code&gt;&lt;/a&gt; Chore: fix some jsdoc-related issues (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11148&quot;&gt;#11148&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d451c510c15abc41b5bb14b4955a7db96aeb100&quot;&gt;&lt;code&gt;5d451c5&lt;/code&gt;&lt;/a&gt; Chore: Remove dependency on is-resolvable (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11128&quot;&gt;#11128&lt;/a&gt;) (Matt Grande)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bc50dc7737496712463220e662946eb516e36ae1&quot;&gt;&lt;code&gt;bc50dc7&lt;/code&gt;&lt;/a&gt; Chore: Move ignored-paths, report-translator to lib/util (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/10559&quot;&gt;#10559&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11116&quot;&gt;#11116&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f394a1dfc5eb4874f899b7bc19685896893af7b8&quot;&gt;&lt;code&gt;f394a1d&lt;/code&gt;&lt;/a&gt; Chore: Extract config comment parsing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11091&quot;&gt;#11091&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e18c827cc12cb1c52e5d0aa993f572cb56238704&quot;&gt;&lt;code&gt;e18c827&lt;/code&gt;&lt;/a&gt; Chore: refactor linter#parseBooleanConfig to improve readability (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11074&quot;&gt;#11074&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>End-of-Life for Built-in JSDoc Support in ESLint</title>
    <link href="https://eslint.org/blog/2018/11/jsdoc-end-of-life/"/>
    <updated>2018-11-27T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/11/jsdoc-end-of-life/</id>
    <content type="html">&lt;p&gt;Over the past few years, the ESLint project has grown in size and scope. What originally consisted of a single executable package has grown into a project with multiple packages including several parsers and other utilities. Although the project has grown, the size of the team has not, and as such we’ve had to make some tough decisions about how to continue maintaining the ESLint project as a whole using an all-volunteer team.&lt;/p&gt;
&lt;h2 id=&quot;current-jsdoc-support-in-eslint&quot; tabindex=&quot;-1&quot;&gt;Current JSDoc Support in ESLint&lt;/h2&gt;
&lt;p&gt;JSDoc support in ESLint currently consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Maintaining the &lt;a href=&quot;https://github.com/eslint/doctrine&quot;&gt;Doctrine&lt;/a&gt; JSDoc comment parser&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/require-jsdoc&quot;&gt;&lt;code&gt;require-jsdoc&lt;/code&gt;&lt;/a&gt; rule&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;&lt;code&gt;valid-jsdoc&lt;/code&gt;&lt;/a&gt; rule&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#contextgetsourcecode&quot;&gt;&lt;code&gt;SourceCode#getJSDocComment()&lt;/code&gt;&lt;/a&gt; method&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To support JSDoc in ESLint, we had been spending an outsized amount of time maintaining Doctrine and the &lt;code&gt;valid-jsdoc rule&lt;/code&gt; as compared to the effort required to maintain the rest of the project. Those two parts, in addition to the &lt;code&gt;require-jsdoc&lt;/code&gt; rule and &lt;code&gt;SourceCode#getJSDocComment()&lt;/code&gt; are being end-of-lifed beginning today.&lt;/p&gt;
&lt;h2 id=&quot;what-end-of-life-means&quot; tabindex=&quot;-1&quot;&gt;What End-of-Life Means&lt;/h2&gt;
&lt;p&gt;End-of-life for core JSDoc support means you will see the following happening in the next several weeks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Doctrine will no longer be updated. Version 3.0.0, published two weeks ago, will be the last major version release. We may need to do a couple of small updates before stopping all maintenance, but we will no longer be adding features or fixing bugs. We believe Doctrine is in a solid and reliable state and would make a good base if anyone wants to fork it to begin a new project.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;require-jsdoc&lt;/code&gt; and &lt;code&gt;valid-jsdoc&lt;/code&gt; rules will be &lt;a href=&quot;https://eslint.org/docs/user-guide/rule-deprecation#rule-deprecation&quot;&gt;deprecated&lt;/a&gt;. These two rules will remain in ESLint but we will no longer add new features or fix bugs for them. These rules may be removed in a future major release of ESLint.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;SourceCode#getJSDocComment()&lt;/code&gt; method will be deprecated. We won’t be making changes related to this method and will remove it in a future major release of ESLint.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Be sure to check the release announcements for when these changes take effect.&lt;/p&gt;
&lt;h2 id=&quot;suggested-replacement&quot; tabindex=&quot;-1&quot;&gt;Suggested Replacement&lt;/h2&gt;
&lt;p&gt;If you would like to continue checking JSDoc comments using ESLint, we suggest using the community-supported &lt;a href=&quot;https://github.com/gajus/eslint-plugin-jsdoc&quot;&gt;&lt;code&gt;eslint-plugin-jsdoc&lt;/code&gt;&lt;/a&gt; plugin. This plugin contains several rules that are more specific than the core ESLint rules being deprecated and may actually be a better fit for most projects.&lt;/p&gt;
&lt;h2 id=&quot;frequently-asked-questions&quot; tabindex=&quot;-1&quot;&gt;Frequently Asked Questions&lt;/h2&gt;
&lt;h3 id=&quot;why-aren%E2%80%99t-you-trying-to-find-new-maintainers-for-doctrine%3F&quot; tabindex=&quot;-1&quot;&gt;Why aren’t you trying to find new maintainers for Doctrine?&lt;/h3&gt;
&lt;p&gt;There are a couple of reasons why we decided not to find new maintainers for Doctrine.&lt;/p&gt;
&lt;p&gt;First, while the package is widely-used, there has been very few contributions from those outside of the team. Whereas some packages get a lot of attention from outside contributors and it may be easy to find a new maintainer, that wasn’t the case with Doctrine.&lt;/p&gt;
&lt;p&gt;Second, because Doctrine is a part of the JS Foundation, taking over its maintenance means being involved with the Foundation. In the event that a single maintainer decided to take this on, that might be too much overhead.&lt;/p&gt;
&lt;p&gt;With nearly 7 million weekly downloads on npm, it seemed like the best option for existing users was to end-of-life the Doctrine project rather than try to find a new maintainer. We believe a better option for an interested new maintainer would be to fork Doctrine and start fresh rather than try to take over the way Doctrine had already been maintained.&lt;/p&gt;
&lt;h2 id=&quot;why-are-you-going-to-keep-the-jsdoc-rules-and-not-maintain-them%3F&quot; tabindex=&quot;-1&quot;&gt;Why are you going to keep the JSDoc rules and not maintain them?&lt;/h2&gt;
&lt;p&gt;We are keeping the existing JSDoc rules to give users plenty of time to transition to using &lt;code&gt;eslint-plugin-jsdoc&lt;/code&gt;. We try to minimize the number of times we ask our users to update their config files, and by deprecated the existing JSDoc rules while keeping them available, we are allowing everyone to make a gradual transition while also freeing up ESLint team resources to work on other parts of the project.&lt;/p&gt;
&lt;h2 id=&quot;what-if-i-have-other-questions-about-this%3F&quot; tabindex=&quot;-1&quot;&gt;What if I have other questions about this?&lt;/h2&gt;
&lt;p&gt;Open a &lt;a href=&quot;https://github.com/eslint/eslint/discussions&quot;&gt;discussion&lt;/a&gt; or stop by our &lt;a href=&quot;https://eslint.org/chat&quot;&gt;Discord server&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.9.0 released</title>
    <link href="https://eslint.org/blog/2018/11/eslint-v5.9.0-released/"/>
    <updated>2018-11-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/11/eslint-v5.9.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;The following are the most important changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;the---fix-type-option&quot; tabindex=&quot;-1&quot;&gt;The --fix-type option&lt;/h3&gt;
&lt;p&gt;This version introduces a new &lt;code&gt;--fix-type&lt;/code&gt; option for the &lt;a href=&quot;https://eslint.org/docs/user-guide/command-line-interface#--fix-type&quot;&gt;command line interface&lt;/a&gt;. This option allows you to filter the type of fixes applied when using &lt;code&gt;--fix&lt;/code&gt;. You can specify the type of fixes to apply based on the new &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#rule-basics&quot;&gt;rule types&lt;/a&gt; we’ve assigned to each rule. The three rule types are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;problem&lt;/code&gt; - the rule flags a potential problem with your code.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;suggestion&lt;/code&gt; - the rule flags something that could be done in a better or preferred way.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;layout&lt;/code&gt; - the rule flags changes limited to whitespace, semicolons, commas, or parentheses.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You might find this option useful if you’re using a source code formatter with ESLint, in which case you might want to use &lt;code&gt;--fix-type problem,suggestion&lt;/code&gt; to only apply fixes for rules that won’t clash with your formatter.&lt;/p&gt;
&lt;p&gt;There is also a new &lt;code&gt;fixTypes&lt;/code&gt; option that can be passed to the &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#cliengine&quot;&gt;&lt;code&gt;CLIEngine&lt;/code&gt;&lt;/a&gt; class that implements the same feature for those using the API.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Fixes in custom rules will not be applied when using &lt;code&gt;--fix-type&lt;/code&gt; unless they include a &lt;code&gt;meta.type&lt;/code&gt; field. If you are maintaining a plugin with custom rules, please update your rules.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ad86de&quot;&gt;7ad86de&lt;/a&gt; New: Add --fix-type option to CLI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10855&quot;&gt;#10855&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10912&quot;&gt;#10912&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c832cd5&quot;&gt;c832cd5&lt;/a&gt; Update: add &lt;code&gt;ignoreDestructuring&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/id-match&quot;&gt;&lt;code&gt;id-match&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10554&quot;&gt;#10554&lt;/a&gt;) (一名宅。)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae2b61d&quot;&gt;ae2b61d&lt;/a&gt; Update: “off” options for “&lt;a href=&quot;https://eslint.org/docs/rules/space-before-blocks&quot;&gt;space-before-blocks&lt;/a&gt;” (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/10906&quot;&gt;#10906&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10907&quot;&gt;#10907&lt;/a&gt;) (Sophie Kirschner)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79a27976&quot;&gt;79a2797&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; to check re-export (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9678&quot;&gt;#9678&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11064&quot;&gt;#11064&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/802e926&quot;&gt;802e926&lt;/a&gt; Update: Warn for deprecation in Node output (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7443&quot;&gt;#7443&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10953&quot;&gt;#10953&lt;/a&gt;) (Colin Chang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9436712&quot;&gt;9436712&lt;/a&gt; Fix: Unused recursive function expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10982&quot;&gt;#10982&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11032&quot;&gt;#11032&lt;/a&gt;) (Sergei Startsev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54687a8&quot;&gt;54687a8&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;prefer-const&lt;/a&gt; autofix multiline assignment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10582&quot;&gt;#10582&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10987&quot;&gt;#10987&lt;/a&gt;) (Scott Stern)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dcc6233&quot;&gt;dcc6233&lt;/a&gt; Fix: Ignore empty statements in &lt;a href=&quot;https://eslint.org/docs/rules/no-unreachable&quot;&gt;no-unreachable&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9081&quot;&gt;#9081&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11058&quot;&gt;#11058&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5525eb6&quot;&gt;5525eb6&lt;/a&gt; Fix: rule deprecation warnings did not consider all rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11044&quot;&gt;#11044&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57f357e&quot;&gt;57f357e&lt;/a&gt; Docs: Update &lt;a href=&quot;https://eslint.org/docs/rules/require-await&quot;&gt;require-await&lt;/a&gt; docs with exception (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9540&quot;&gt;#9540&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11063&quot;&gt;#11063&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3dd7493&quot;&gt;3dd7493&lt;/a&gt; Docs: update ecmaVersion to include 2019/10 values (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11059&quot;&gt;#11059&lt;/a&gt;) (Vse Mozhet Byt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fe3287&quot;&gt;4fe3287&lt;/a&gt; Docs: Cross-reference two rules (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/11041&quot;&gt;#11041&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11042&quot;&gt;#11042&lt;/a&gt;) (Paul Melnikow)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/44d37ca&quot;&gt;44d37ca&lt;/a&gt; Docs: Update steps for adding new TSC member (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11038&quot;&gt;#11038&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/607635d&quot;&gt;607635d&lt;/a&gt; Upgrade: eslint-plugin-node &amp;amp; eslint-plugin (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11067&quot;&gt;#11067&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0800b20&quot;&gt;0800b20&lt;/a&gt; Chore: fix invalid super() calls in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11054&quot;&gt;#11054&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.8.0 released</title>
    <link href="https://eslint.org/blog/2018/10/eslint-v5.8.0-released/"/>
    <updated>2018-10-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/10/eslint-v5.8.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;Linter&lt;/code&gt; API now has a static &lt;code&gt;version&lt;/code&gt; property, for consistency with the &lt;code&gt;CLIEngine.version&lt;/code&gt; property. (Previously, the &lt;code&gt;version&lt;/code&gt; property was only present on instances of &lt;code&gt;Linter&lt;/code&gt; rather than &lt;code&gt;Linter&lt;/code&gt; itself.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3943635&quot;&gt;3943635&lt;/a&gt; Update: Create Linter.version API (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9271&quot;&gt;#9271&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11010&quot;&gt;#11010&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9152417&quot;&gt;9152417&lt;/a&gt; Fix: deprecation warning in RuleTester using Node v11 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11009&quot;&gt;#11009&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57ef0fd&quot;&gt;57ef0fd&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;prefer-const&lt;/a&gt; when using destructuring assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8308&quot;&gt;#8308&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10924&quot;&gt;#10924&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e349a03&quot;&gt;e349a03&lt;/a&gt; Docs: Update issue templates to ask for PRs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11012&quot;&gt;#11012&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a940cf4&quot;&gt;a940cf4&lt;/a&gt; Docs: Mention version for config glob patterns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8793&quot;&gt;#8793&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58ff359&quot;&gt;58ff359&lt;/a&gt; Docs: add instructions for npm 2FA (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/10631&quot;&gt;#10631&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10992&quot;&gt;#10992&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2f87bb3&quot;&gt;2f87bb3&lt;/a&gt; Upgrade: eslint-release@1.0.0 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/10631&quot;&gt;#10631&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10991&quot;&gt;#10991&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a31a92&quot;&gt;5a31a92&lt;/a&gt; Build: compile espree’s deps to ES5 when generating site (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/11014&quot;&gt;#11014&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11015&quot;&gt;#11015&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e1c530&quot;&gt;6e1c530&lt;/a&gt; Build: run tests on Node 11 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11008&quot;&gt;#11008&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3d88b38&quot;&gt;3d88b38&lt;/a&gt; Chore: avoid using legacy report API in &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/11013&quot;&gt;#11013&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/577cbf1&quot;&gt;577cbf1&lt;/a&gt; Chore: Add typescript-specific edge case tests to &lt;a href=&quot;https://eslint.org/docs/rules/space-infix-ops&quot;&gt;space-infix-ops&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10986&quot;&gt;#10986&lt;/a&gt;) (Bence Dányi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d45b184&quot;&gt;d45b184&lt;/a&gt; Chore: Using deconstruction assignment for shelljs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10974&quot;&gt;#10974&lt;/a&gt;) (ZYSzys)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.7.0 released</title>
    <link href="https://eslint.org/blog/2018/10/eslint-v5.7.0-released/"/>
    <updated>2018-10-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/10/eslint-v5.7.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Three rules gained new options in this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;&lt;code&gt;padding-line-between-statements&lt;/code&gt;&lt;/a&gt; has a new &lt;code&gt;iife&lt;/code&gt; node type to specifically target immediately-invoked function expression invocations as distinct statements.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-tabs&quot;&gt;&lt;code&gt;no-tabs&lt;/code&gt;&lt;/a&gt; has a new &lt;code&gt;allowIndentationTabs&lt;/code&gt; option to permit tabs only for indentation and nowhere else.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;&lt;code&gt;camelcase&lt;/code&gt;&lt;/a&gt; has a new &lt;code&gt;allow&lt;/code&gt; option that can be configured to individually allow certain non-camelcase identifiers like React’s &lt;code&gt;UNSAFE_componentWillMount&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6cb63fd&quot;&gt;6cb63fd&lt;/a&gt; Update: Add iife to &lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;padding-line-between-statements&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10853&quot;&gt;#10853&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10916&quot;&gt;#10916&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5fd1bda&quot;&gt;5fd1bda&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-tabs&quot;&gt;no-tabs&lt;/a&gt; allowIndentationTabs option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10256&quot;&gt;#10256&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10925&quot;&gt;#10925&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/066f7e0&quot;&gt;066f7e0&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; rule ignoreList added (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10783&quot;&gt;#10783&lt;/a&gt;) (Julien Martin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d12be69&quot;&gt;d12be69&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-bind&quot;&gt;no-extra-bind&lt;/a&gt; No autofix if arg may have side effect (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10846&quot;&gt;#10846&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10918&quot;&gt;#10918&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/847372f&quot;&gt;847372f&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; false pos. with markVariableAsUsed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10952&quot;&gt;#10952&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10954&quot;&gt;#10954&lt;/a&gt;) (Roy Sutton)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/543edfa&quot;&gt;543edfa&lt;/a&gt; Fix: Fix error with &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10937&quot;&gt;#10937&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10938&quot;&gt;#10938&lt;/a&gt;) (Justin Krup)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5fe0e1a&quot;&gt;5fe0e1a&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;no-invalid-regexp&lt;/a&gt; disallows &#92; at end of pattern (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10861&quot;&gt;#10861&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10920&quot;&gt;#10920&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95c4cb1&quot;&gt;95c4cb1&lt;/a&gt; Docs: Fix typo for &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-finally&quot;&gt;no-unsafe-finally&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10945&quot;&gt;#10945&lt;/a&gt;) (Sergio Santoro)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f85547a&quot;&gt;f85547a&lt;/a&gt; Docs: Add ‘When Not To Use’ section to &lt;a href=&quot;https://eslint.org/docs/rules/space-infix-ops&quot;&gt;space-infix-ops&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10931&quot;&gt;#10931&lt;/a&gt;) (Bence Dányi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3dccac4&quot;&gt;3dccac4&lt;/a&gt; Docs: Update working-with-parsers link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10929&quot;&gt;#10929&lt;/a&gt;) (Azeem Bande-Ali)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/557a8bb&quot;&gt;557a8bb&lt;/a&gt; Docs: Remove old note about caching, add a new one (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10739&quot;&gt;#10739&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10913&quot;&gt;#10913&lt;/a&gt;) (Zac)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/70bde69&quot;&gt;70bde69&lt;/a&gt; Upgrade: table to version 5 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10903&quot;&gt;#10903&lt;/a&gt;) (Rouven Weßling)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4132de7&quot;&gt;4132de7&lt;/a&gt; Chore: Simplify &lt;a href=&quot;https://eslint.org/docs/rules/space-infix-ops&quot;&gt;space-infix-ops&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10935&quot;&gt;#10935&lt;/a&gt;) (Bence Dányi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe8111a&quot;&gt;fe8111a&lt;/a&gt; Chore: Add more test cases to &lt;a href=&quot;https://eslint.org/docs/rules/space-infix-ops&quot;&gt;space-infix-ops&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10936&quot;&gt;#10936&lt;/a&gt;) (Bence Dányi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e52bca&quot;&gt;2e52bca&lt;/a&gt; Chore: Update issue templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10900&quot;&gt;#10900&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.6.1 released</title>
    <link href="https://eslint.org/blog/2018/09/eslint-v5.6.1-released/"/>
    <updated>2018-09-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/09/eslint-v5.6.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b26bdb&quot;&gt;9b26bdb&lt;/a&gt; Fix: avoid exponential &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;require-atomic-updates&lt;/a&gt; traversal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10893&quot;&gt;#10893&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10894&quot;&gt;#10894&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9432b10&quot;&gt;9432b10&lt;/a&gt; Fix: make separateRequires work in consecutive mode (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10784&quot;&gt;#10784&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10886&quot;&gt;#10886&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9d52541&quot;&gt;9d52541&lt;/a&gt; Fix: Remove duplicate error message on crash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8964&quot;&gt;#8964&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10865&quot;&gt;#10865&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3f3994&quot;&gt;d3f3994&lt;/a&gt; Docs: add information about reporting security issues (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10889&quot;&gt;#10889&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a6ebfd3&quot;&gt;a6ebfd3&lt;/a&gt; Docs: clarify defaultAssignment option, fix &lt;a href=&quot;https://eslint.org/docs/rules/no-unneeded-ternary&quot;&gt;no-unneeded-ternary&lt;/a&gt; examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10874&quot;&gt;#10874&lt;/a&gt;) (CoffeeTableEspresso)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4eb9a49&quot;&gt;4eb9a49&lt;/a&gt; Docs: Update &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;quotes&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10862&quot;&gt;#10862&lt;/a&gt;) (The Jared Wilcurt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9159e9b&quot;&gt;9159e9b&lt;/a&gt; Docs: Update &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;complexity&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10867&quot;&gt;#10867&lt;/a&gt;) (Szymon Przybylski)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14f4e46&quot;&gt;14f4e46&lt;/a&gt; Docs: Use Linter instead of linter in Nodejs API page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10864&quot;&gt;#10864&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e51868d&quot;&gt;e51868d&lt;/a&gt; Upgrade: debug@4 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10854&quot;&gt;#10854&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10887&quot;&gt;#10887&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc458f4&quot;&gt;cc458f4&lt;/a&gt; Build: fix failing tests on master (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10890&quot;&gt;#10890&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3e3cb1&quot;&gt;b3e3cb1&lt;/a&gt; Chore: Update debug log name to match filename (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10863&quot;&gt;#10863&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.6.0 released</title>
    <link href="https://eslint.org/blog/2018/09/eslint-v5.6.0-released/"/>
    <updated>2018-09-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/09/eslint-v5.6.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5b688e&quot;&gt;c5b688e&lt;/a&gt; Update: Added generators option to &lt;a href=&quot;https://eslint.org/docs/rules/func-names&quot;&gt;func-names&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9511&quot;&gt;#9511&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10697&quot;&gt;#10697&lt;/a&gt;) (Oscar Barrett)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7da36d5&quot;&gt;7da36d5&lt;/a&gt; Fix: respect generator function expressions in &lt;a href=&quot;https://eslint.org/docs/rules/no-constant-condition&quot;&gt;no-constant-condition&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10827&quot;&gt;#10827&lt;/a&gt;) (Julian Rosse)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a65844&quot;&gt;0a65844&lt;/a&gt; Chore: quote enable avoidEscape option in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10626&quot;&gt;#10626&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/32f41bd&quot;&gt;32f41bd&lt;/a&gt; Chore: Add configuration wrapper markdown for the bug report template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10669&quot;&gt;#10669&lt;/a&gt;) (Iulian Onofrei)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.5.0 released</title>
    <link href="https://eslint.org/blog/2018/08/eslint-v5.5.0-released/"/>
    <updated>2018-08-31T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/08/eslint-v5.5.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b61d2cd&quot;&gt;b61d2cd&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/max-params&quot;&gt;max-params&lt;/a&gt; to only highlight function header (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10815&quot;&gt;#10815&lt;/a&gt;) (Ian Obermiller)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e110e6&quot;&gt;6e110e6&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; duplicate warning bug (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10801&quot;&gt;#10801&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10802&quot;&gt;#10802&lt;/a&gt;) (Julian Rosse)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5103ee7&quot;&gt;5103ee7&lt;/a&gt; Docs: Add Brackets integration (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10813&quot;&gt;#10813&lt;/a&gt;) (Jan Pilzer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2824d43&quot;&gt;2824d43&lt;/a&gt; Docs: fix comment placement in a code example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10799&quot;&gt;#10799&lt;/a&gt;) (Vse Mozhet Byt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/80c8598&quot;&gt;80c8598&lt;/a&gt; Docs: gitignore syntax updates (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8139&quot;&gt;#8139&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10776&quot;&gt;#10776&lt;/a&gt;) (Gustavo Santana)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b2f11d&quot;&gt;2b2f11d&lt;/a&gt; Upgrade: babel-code-frame to version 7 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10808&quot;&gt;#10808&lt;/a&gt;) (Rouven Weßling)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10690b7&quot;&gt;10690b7&lt;/a&gt; Upgrade: devdeps and deps to latest (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10622&quot;&gt;#10622&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb946af&quot;&gt;cb946af&lt;/a&gt; Chore: use meta.messages in some rules (1/4) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10764&quot;&gt;#10764&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.4.0 released</title>
    <link href="https://eslint.org/blog/2018/08/eslint-v5.4.0-released/"/>
    <updated>2018-08-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/08/eslint-v5.4.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f3d8454&quot;&gt;f3d8454&lt;/a&gt; Update: Improve &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; error message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10748&quot;&gt;#10748&lt;/a&gt;) (Timo Tijhof)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/034690f&quot;&gt;034690f&lt;/a&gt; Fix: no-invalid-meta crashes for non Object values (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10750&quot;&gt;#10750&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10753&quot;&gt;#10753&lt;/a&gt;) (Sandeep Kumar Ranka)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/562a03f&quot;&gt;562a03f&lt;/a&gt; Fix: consistent-docs-url crashes if meta.docs is empty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10722&quot;&gt;#10722&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10749&quot;&gt;#10749&lt;/a&gt;) (Sandeep Kumar Ranka)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a70909f&quot;&gt;a70909f&lt;/a&gt; Docs: Add &lt;a href=&quot;http://jscs-dev.github.io/&quot;&gt;jscs-dev.github.io&lt;/a&gt; links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10771&quot;&gt;#10771&lt;/a&gt;) (Gustavo Santana)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/11a462d&quot;&gt;11a462d&lt;/a&gt; Docs: Broken &lt;a href=&quot;http://jscs.info/&quot;&gt;jscs.info&lt;/a&gt; URLs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10732&quot;&gt;#10732&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10770&quot;&gt;#10770&lt;/a&gt;) (Gustavo Santana)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/985567d&quot;&gt;985567d&lt;/a&gt; Chore: rm unused dep string.prototype.matchall (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10756&quot;&gt;#10756&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6492233&quot;&gt;6492233&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/no-prototype-builtins&quot;&gt;no-prototype-builtins&lt;/a&gt; in codebase (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10660&quot;&gt;#10660&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10664&quot;&gt;#10664&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/137140f&quot;&gt;137140f&lt;/a&gt; Chore: use eslintrc overrides (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10677&quot;&gt;#10677&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.3.0 released</title>
    <link href="https://eslint.org/blog/2018/08/eslint-v5.3.0-released/"/>
    <updated>2018-08-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/08/eslint-v5.3.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Four new rules have been added:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;&lt;code&gt;no-misleading-character-class&lt;/code&gt;&lt;/a&gt; reports multi-code-point characters in regular expression character classes. Using these characters in character classes often results in surprising behavior.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;&lt;code&gt;require-atomic-updates&lt;/code&gt;&lt;/a&gt; reports potential race conditions that result from updating values in async or generator functions.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-async-promise-executor&quot;&gt;&lt;code&gt;no-async-promise-executor&lt;/code&gt;&lt;/a&gt; reports uses of the &lt;code&gt;Promise&lt;/code&gt; constructor that have an &lt;code&gt;async&lt;/code&gt; function as the argument. Using an &lt;code&gt;async&lt;/code&gt; function in this scenario is not necessary and a potential source of bugs.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/require-unicode-regexp&quot;&gt;&lt;code&gt;require-unicode-regexp&lt;/code&gt;&lt;/a&gt; requires all regular expressions to have the &lt;code&gt;u&lt;/code&gt; flag. Regular expressions with the &lt;code&gt;u&lt;/code&gt; flag have stricter parsing rules and handle unicode text more sensibly, which is useful to avoid unexpected behavior when writing regular expressions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6eb972c&quot;&gt;6eb972c&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/require-unicode-regexp&quot;&gt;require-unicode-regexp&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9961&quot;&gt;#9961&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10698&quot;&gt;#10698&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2cc3240&quot;&gt;2cc3240&lt;/a&gt; New: add &lt;a href=&quot;https://eslint.org/docs/rules/no-misleading-character-class&quot;&gt;no-misleading-character-class&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10049&quot;&gt;#10049&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10511&quot;&gt;#10511&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e93d46&quot;&gt;9e93d46&lt;/a&gt; New: add &lt;a href=&quot;https://eslint.org/docs/rules/no-async-promise-executor&quot;&gt;no-async-promise-executor&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10217&quot;&gt;#10217&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10661&quot;&gt;#10661&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a2538c&quot;&gt;5a2538c&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/require-atomic-updates&quot;&gt;require-atomic-updates&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10405&quot;&gt;#10405&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10655&quot;&gt;#10655&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e37a593&quot;&gt;e37a593&lt;/a&gt; Update: Fix incorrect default value for position (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10670&quot;&gt;#10670&lt;/a&gt;) (Iulian Onofrei)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f026fe1&quot;&gt;f026fe1&lt;/a&gt; Update: Fix ‘function’ in &lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;padding-line-between-statements&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10487&quot;&gt;#10487&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10676&quot;&gt;#10676&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e76be7&quot;&gt;9e76be7&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; comments w/ nearby code if no blank lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9733&quot;&gt;#9733&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10640&quot;&gt;#10640&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c5d64d&quot;&gt;5c5d64d&lt;/a&gt; Fix: ignored-paths for Windows path (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10687&quot;&gt;#10687&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10691&quot;&gt;#10691&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d56c39d&quot;&gt;d56c39d&lt;/a&gt; Fix: ESLint cache no longer stops autofix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10679&quot;&gt;#10679&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10694&quot;&gt;#10694&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/877f4b8&quot;&gt;877f4b8&lt;/a&gt; Fix: The “…/…” folder is always ignored (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10675&quot;&gt;#10675&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10682&quot;&gt;#10682&lt;/a&gt;) (Sridhar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b83d2b&quot;&gt;8b83d2b&lt;/a&gt; Fix: always resolve default ignore patterns from CWD (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9227&quot;&gt;#9227&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10638&quot;&gt;#10638&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acb6658&quot;&gt;acb6658&lt;/a&gt; Fix: ESLint crash with &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;prefer-object-spread&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10646&quot;&gt;#10646&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10649&quot;&gt;#10649&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd6cb19&quot;&gt;dd6cb19&lt;/a&gt; Docs: Updated &lt;a href=&quot;https://eslint.org/docs/rules/no-return-await&quot;&gt;no-return-await&lt;/a&gt; Rule Documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9695&quot;&gt;#9695&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10699&quot;&gt;#10699&lt;/a&gt;) (Marla Foreman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/863aa78&quot;&gt;863aa78&lt;/a&gt; Docs: add another example for when not to use &lt;a href=&quot;https://eslint.org/docs/rules/no-await-in-loop&quot;&gt;no-await-in-loop&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10714&quot;&gt;#10714&lt;/a&gt;) (Valeri Karpov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e78b7d&quot;&gt;6e78b7d&lt;/a&gt; Docs: remove links to terminated &lt;a href=&quot;http://jscs.info/&quot;&gt;jscs.info&lt;/a&gt; domain (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10706&quot;&gt;#10706&lt;/a&gt;) (Piotr Kuczynski)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8084bfc&quot;&gt;8084bfc&lt;/a&gt; Docs: change when not to use object spread (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10621&quot;&gt;#10621&lt;/a&gt;) (Benny Powers)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2bb8bb&quot;&gt;c2bb8bb&lt;/a&gt; Docs: Remove superfluous object option sample code (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10652&quot;&gt;#10652&lt;/a&gt;) (Iulian Onofrei)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d34a13b&quot;&gt;d34a13b&lt;/a&gt; Docs: add subheader in configuring/configuring-rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10686&quot;&gt;#10686&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/99fb7d3&quot;&gt;99fb7d3&lt;/a&gt; Docs: fix misleading &lt;a href=&quot;https://eslint.org/docs/rules/no-prototype-builtins&quot;&gt;no-prototype-builtins&lt;/a&gt; description (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10666&quot;&gt;#10666&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/005b849&quot;&gt;005b849&lt;/a&gt; Docs: fix outdated description of &lt;code&gt;baseConfig&lt;/code&gt; option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10657&quot;&gt;#10657&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/15a77c4&quot;&gt;15a77c4&lt;/a&gt; Docs: fix broken links (fixes eslint/eslint-jp&lt;a href=&quot;https://github.com/eslint/eslint/issues/6&quot;&gt;#6&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10658&quot;&gt;#10658&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87cd344&quot;&gt;87cd344&lt;/a&gt; Docs: Make marking a default option consistent with other rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10650&quot;&gt;#10650&lt;/a&gt;) (Iulian Onofrei)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b6daf0e&quot;&gt;b6daf0e&lt;/a&gt; Docs: Remove superfluous section from &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-negation&quot;&gt;no-unsafe-negation&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10648&quot;&gt;#10648&lt;/a&gt;) (Iulian Onofrei)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5f6a765&quot;&gt;5f6a765&lt;/a&gt; Build: ensure URL fragments remain in documentation links (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10717&quot;&gt;#10717&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10720&quot;&gt;#10720&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6009239&quot;&gt;6009239&lt;/a&gt; Chore: rename utils for consistency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10727&quot;&gt;#10727&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5984820&quot;&gt;5984820&lt;/a&gt; Chore: Move lib/file-finder.js to lib/util/ (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/10559&quot;&gt;#10559&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10695&quot;&gt;#10695&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f496e2&quot;&gt;7f496e2&lt;/a&gt; Chore: Update require path for ast-utils (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10693&quot;&gt;#10693&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/648a33a&quot;&gt;648a33a&lt;/a&gt; Chore: reorganize code structure of utilities (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/10599&quot;&gt;#10599&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10680&quot;&gt;#10680&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d8aea28&quot;&gt;d8aea28&lt;/a&gt; Chore: rm unnecessary plugin in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10685&quot;&gt;#10685&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0cb5e3e&quot;&gt;0cb5e3e&lt;/a&gt; Chore: Replace some function application with spread operators (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10645&quot;&gt;#10645&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1a3cac&quot;&gt;e1a3cac&lt;/a&gt; Chore: rm deprecated experimentalObjectRestSpread option in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10647&quot;&gt;#10647&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.2.0 released</title>
    <link href="https://eslint.org/blog/2018/07/eslint-v5.2.0-released/"/>
    <updated>2018-07-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/07/eslint-v5.2.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;When using the &lt;code&gt;--cache&lt;/code&gt; flag, the results for files with linting errors are now saved to the cache. This should result in improved performance when using &lt;code&gt;--cache&lt;/code&gt; on a codebase with existing linting errors.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81283d0&quot;&gt;81283d0&lt;/a&gt; Update: Cache files that failed linting (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9948&quot;&gt;#9948&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10571&quot;&gt;#10571&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f93d5f&quot;&gt;9f93d5f&lt;/a&gt; Docs: Updated Working with Custom Formatters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9950&quot;&gt;#9950&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10592&quot;&gt;#10592&lt;/a&gt;) (Marla Foreman)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13cc63e&quot;&gt;13cc63e&lt;/a&gt; Upgrade: ignore@4.0.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10619&quot;&gt;#10619&lt;/a&gt;) (Rouven Weßling)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/761f802&quot;&gt;761f802&lt;/a&gt; Upgrade: eslint-plugin-node to 7.0.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10612&quot;&gt;#10612&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c517b2a&quot;&gt;c517b2a&lt;/a&gt; Build: fix npm run perf failing(fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10577&quot;&gt;#10577&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10607&quot;&gt;#10607&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/80b296e&quot;&gt;80b296e&lt;/a&gt; Build: package.json update for eslint-config-eslint release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/64dfa21&quot;&gt;64dfa21&lt;/a&gt; Build: Fix prerelease logic in blog post generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10578&quot;&gt;#10578&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10581&quot;&gt;#10581&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ac77a80&quot;&gt;ac77a80&lt;/a&gt; Chore: Fixing a call to Object.assign.apply in Linter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10629&quot;&gt;#10629&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e596939&quot;&gt;e596939&lt;/a&gt; Chore: fix redundant equality check (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10617&quot;&gt;#10617&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9aaf195&quot;&gt;9aaf195&lt;/a&gt; Chore: Extract lint result cache logic (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9948&quot;&gt;#9948&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10562&quot;&gt;#10562&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4e7ff2&quot;&gt;e4e7ff2&lt;/a&gt; Chore: fix error message in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10588&quot;&gt;#10588&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e88170&quot;&gt;1e88170&lt;/a&gt; Chore: Move lib/logging and lib/timing to lib/util/ (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/10559&quot;&gt;#10559&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10579&quot;&gt;#10579&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0faf633&quot;&gt;0faf633&lt;/a&gt; Chore: Simplify helper method in Linter tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10580&quot;&gt;#10580&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Postmortem for Malicious Packages Published on July 12th, 2018</title>
    <link href="https://eslint.org/blog/2018/07/postmortem-for-malicious-package-publishes/"/>
    <updated>2018-07-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/07/postmortem-for-malicious-package-publishes/</id>
    <content type="html">&lt;h2 id=&quot;summary&quot; tabindex=&quot;-1&quot;&gt;Summary&lt;/h2&gt;
&lt;p&gt;On July 12th, 2018, an attacker compromised the npm account of an ESLint maintainer and published malicious versions of the &lt;a href=&quot;https://github.com/eslint/eslint-scope&quot;&gt;&lt;code&gt;eslint-scope&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://github.com/eslint/eslint/tree/9aaf195ca691d307e8896096cefffe975218c701/packages/eslint-config-eslint&quot;&gt;&lt;code&gt;eslint-config-eslint&lt;/code&gt;&lt;/a&gt; packages to the npm registry. On installation, the malicious packages downloaded and executed code from &lt;code&gt;pastebin.com&lt;/code&gt; which sent the contents of the user’s &lt;code&gt;.npmrc&lt;/code&gt; file to the attacker. An &lt;code&gt;.npmrc&lt;/code&gt; file typically contains access tokens for publishing to npm.&lt;/p&gt;
&lt;p&gt;The malicious package versions are &lt;code&gt;eslint-scope@3.7.2&lt;/code&gt; and &lt;code&gt;eslint-config-eslint@5.0.2&lt;/code&gt;, both of which have been unpublished from npm. The &lt;code&gt;pastebin.com&lt;/code&gt; paste linked in these packages has also been taken down.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://status.npmjs.org/incidents/dn7c1fgrr7ng&quot;&gt;npm has revoked&lt;/a&gt; all access tokens issued before 2018-07-12 12:30 UTC. As a result, all access tokens compromised by this attack should no longer be usable.&lt;/p&gt;
&lt;p&gt;The maintainer whose account was compromised had reused their npm password on several other sites and did not have two-factor authentication enabled on their npm account.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We, the ESLint team, are sorry for allowing this to happen. We hope that other package maintainers can learn from our mistakes and improve the security of the whole npm ecosystem.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;affected-packages&quot; tabindex=&quot;-1&quot;&gt;Affected Packages&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint-scope&quot;&gt;&lt;code&gt;eslint-scope@3.7&lt;/code&gt;&lt;/a&gt;, a scope analysis library, is a dependency of several popular packages, including some older versions of &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;&lt;code&gt;eslint&lt;/code&gt;&lt;/a&gt; and the latest versions of &lt;a href=&quot;https://github.com/babel/babel-eslint&quot;&gt;&lt;code&gt;babel-eslint&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://github.com/webpack/webpack&quot;&gt;&lt;code&gt;webpack&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/tree/9aaf195ca691d307e8896096cefffe975218c701/packages/eslint-config-eslint&quot;&gt;&lt;code&gt;eslint-config-eslint@5.0&lt;/code&gt;&lt;/a&gt; is a configuration used internally by the ESLint team, with very little usage elsewhere.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you run your own npm registry, you should unpublish the malicious versions of each package. They have already been unpublished from the &lt;a href=&quot;http://npmjs.com/&quot;&gt;npmjs.com&lt;/a&gt; registry.&lt;/p&gt;
&lt;h2 id=&quot;attack-method&quot; tabindex=&quot;-1&quot;&gt;Attack Method&lt;/h2&gt;
&lt;p&gt;Further details on the attack can be found &lt;a href=&quot;https://gist.github.com/hzoo/51cb84afdc50b14bffa6c6dc49826b3e&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;recommendations&quot; tabindex=&quot;-1&quot;&gt;Recommendations&lt;/h2&gt;
&lt;p&gt;With the hindsight of this incident, we have a few recommendations for npm package maintainers and users in the future:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Package maintainers and users should avoid reusing the same password across multiple different sites. A password manager like &lt;a href=&quot;https://1password.com/&quot;&gt;1Password&lt;/a&gt; or &lt;a href=&quot;https://www.lastpass.com/&quot;&gt;LastPass&lt;/a&gt; can help with this.&lt;/li&gt;
&lt;li&gt;Package maintainers should &lt;a href=&quot;https://www.npmjs.com/settings/~/tfa&quot;&gt;enable npm two-factor authentication&lt;/a&gt;. npm has a guide &lt;a href=&quot;https://docs.npmjs.com/getting-started/using-two-factor-authentication&quot;&gt;here&lt;/a&gt;.
&lt;ul&gt;
&lt;li&gt;If you use Lerna, you can follow this &lt;a href=&quot;https://github.com/lerna/lerna/issues/1091&quot;&gt;issue&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Package maintainers should audit and limit the number of people who have access to publish on npm.&lt;/li&gt;
&lt;li&gt;Package maintainers should be careful with using any services that auto-merge dependency upgrades.&lt;/li&gt;
&lt;li&gt;Application developers should use a lockfile (&lt;code&gt;package-lock.json&lt;/code&gt; or &lt;code&gt;yarn.lock&lt;/code&gt;) to prevent the auto-install of new packages.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;timeline&quot; tabindex=&quot;-1&quot;&gt;Timeline&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Before the incident&lt;/strong&gt;: The attacker presumably found the maintainer’s reused email and password in a third-party breach and used them to log in to the maintainer’s npm account.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Early morning July 12th, 2018&lt;/strong&gt;: The attacker generated an authentication token in the maintainer’s npm account.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2018-07-12 9:49 UTC&lt;/strong&gt;: The attacker used the generated authentication token to publish &lt;code&gt;eslint-config-eslint@5.0.2&lt;/code&gt;, which contained a malicious &lt;code&gt;postinstall&lt;/code&gt; script that attempts to exfiltrate the local machine’s &lt;code&gt;.npmrc&lt;/code&gt; authentication token.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2018-07-12 10:25 UTC&lt;/strong&gt;: The attacker unpublished &lt;code&gt;eslint-config-eslint@5.0.2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2018-07-12 10:40 UTC&lt;/strong&gt;: The attacker published &lt;code&gt;eslint-scope@3.7.2&lt;/code&gt;, which contained the same malicious &lt;code&gt;postinstall&lt;/code&gt; script.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2018-07-12 11:17 UTC&lt;/strong&gt;: A user posted &lt;a href=&quot;https://github.com/eslint/eslint-scope/issues/39&quot;&gt;eslint/eslint-scope#39&lt;/a&gt;, notifying the ESLint team of the issue.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2018-07-12 12:27 UTC&lt;/strong&gt;: The &lt;a href=&quot;http://pastebin.com/&quot;&gt;pastebin.com&lt;/a&gt; link containing malicious code was taken down.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2018-07-12 12:37 UTC&lt;/strong&gt;: The npm team unpublished &lt;code&gt;eslint-scope@3.7.2&lt;/code&gt; after being contacted by an ESLint maintainer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2018-07-12 17:41 UTC&lt;/strong&gt;: The ESLint team published &lt;code&gt;eslint-scope@3.7.3&lt;/code&gt; with the code from &lt;code&gt;eslint-scope@3.7.1&lt;/code&gt; so that caches could pick up the new version.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2018-07-12 18:42 UTC&lt;/strong&gt;: npm revoked all access tokens generated before 2018-07-12 12:30 UTC.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;links&quot; tabindex=&quot;-1&quot;&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Original report: &lt;a href=&quot;https://github.com/eslint/eslint-scope/issues/39&quot;&gt;eslint/eslint-scope#39&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://status.npmjs.org/incidents/dn7c1fgrr7ng&quot;&gt;npm Status&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.1.0 released</title>
    <link href="https://eslint.org/blog/2018/07/eslint-v5.1.0-released/"/>
    <updated>2018-07-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/07/eslint-v5.1.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-catch-shadow&quot;&gt;&lt;code&gt;no-catch-shadow&lt;/code&gt;&lt;/a&gt; rule has been deprecated in favor of &lt;a href=&quot;https://eslint.org/docs/rules/no-shadow&quot;&gt;&lt;code&gt;no-shadow&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/143890a46&quot;&gt;143890a46&lt;/a&gt; Update: Adjust grammar of error/warnings fixable (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10546&quot;&gt;#10546&lt;/a&gt;) (Matt Mischuk)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7addf6fe&quot;&gt;b7addf6fe&lt;/a&gt; Update: deprecate &lt;a href=&quot;https://eslint.org/docs/rules/no-catch-shadow&quot;&gt;no-catch-shadow&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10466&quot;&gt;#10466&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10526&quot;&gt;#10526&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b2df73876&quot;&gt;b2df73876&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;prefer-object-spread&lt;/a&gt; duplicated comma (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10512&quot;&gt;#10512&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10532&quot;&gt;#10532&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10524&quot;&gt;#10524&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d8c3a25f5&quot;&gt;d8c3a25f5&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/wrap-regex&quot;&gt;wrap-regex&lt;/a&gt; doesn’t work in some expression(fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10573&quot;&gt;#10573&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10576&quot;&gt;#10576&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/63f36f783&quot;&gt;63f36f783&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;sort-keys&lt;/a&gt; in an object that contains spread (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10261&quot;&gt;#10261&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10495&quot;&gt;#10495&lt;/a&gt;) (katerberg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/601a5c4ae&quot;&gt;601a5c4ae&lt;/a&gt; Fix: Prefer-const rule crashing on array destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10520&quot;&gt;#10520&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10527&quot;&gt;#10527&lt;/a&gt;) (Michael Mason)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02efeac65&quot;&gt;02efeac65&lt;/a&gt; Fix: do not fail on nested unknown operators (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10561&quot;&gt;#10561&lt;/a&gt;) (Rubén Norte)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e862dc3a8&quot;&gt;e862dc3a8&lt;/a&gt; Fix: Remove autofixer for &lt;a href=&quot;https://eslint.org/docs/rules/no-debugger&quot;&gt;no-debugger&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10242&quot;&gt;#10242&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10509&quot;&gt;#10509&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/114f42ee5&quot;&gt;114f42ee5&lt;/a&gt; Docs: Clarify option defaults in &lt;a href=&quot;https://eslint.org/docs/rules/max-lines-per-function&quot;&gt;max-lines-per-function&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10569&quot;&gt;#10569&lt;/a&gt;) (Chris Harwood)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/100f1beb2&quot;&gt;100f1beb2&lt;/a&gt; Docs: add note about release issues to readme (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10572&quot;&gt;#10572&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/076a6b6db&quot;&gt;076a6b6db&lt;/a&gt; Docs: add actionable fix to &lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;no-irregular-whitespace&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10558&quot;&gt;#10558&lt;/a&gt;) (Matteo Collina)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de663ec14&quot;&gt;de663ec14&lt;/a&gt; Docs: Only successfully linted files are cached (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9802&quot;&gt;#9802&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10557&quot;&gt;#10557&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8a2ff2c2e&quot;&gt;8a2ff2c2e&lt;/a&gt; Docs:  adding a section about disable rules for some files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10536&quot;&gt;#10536&lt;/a&gt;) (Wellington Soares)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f22a3f80a&quot;&gt;f22a3f80a&lt;/a&gt; Docs: fix a word in &lt;a href=&quot;https://eslint.org/docs/rules/no-implied-eval&quot;&gt;no-implied-eval&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10539&quot;&gt;#10539&lt;/a&gt;) (Dan Homola)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/20d8bbd49&quot;&gt;20d8bbd49&lt;/a&gt; Docs: add missing paragraph about “custom parsers” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10547&quot;&gt;#10547&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f0e22fc05&quot;&gt;f0e22fc05&lt;/a&gt; Upgrade: globals@11.7.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10497&quot;&gt;#10497&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7328f9918&quot;&gt;7328f9918&lt;/a&gt; Build: package.json update for eslint-config-eslint release (ESLint Jenkins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b161f6b62&quot;&gt;b161f6b62&lt;/a&gt; Build: Include prerelease install info in release blog post (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10463&quot;&gt;#10463&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ee39c5f2&quot;&gt;8ee39c5f2&lt;/a&gt; Chore: small refactor config-validator (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10565&quot;&gt;#10565&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/92b19ca61&quot;&gt;92b19ca61&lt;/a&gt; Chore: use eslintrc overrides(dogfooding) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10566&quot;&gt;#10566&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.0.1 released</title>
    <link href="https://eslint.org/blog/2018/06/eslint-v5.0.1-released/"/>
    <updated>2018-06-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/06/eslint-v5.0.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/196c102&quot;&gt;196c102&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;valid-jsdoc&lt;/a&gt; should allow optional returns for async (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10386&quot;&gt;#10386&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10480&quot;&gt;#10480&lt;/a&gt;) (Mark Banner)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c823bd&quot;&gt;4c823bd&lt;/a&gt; Docs: Fix &lt;a href=&quot;https://eslint.org/docs/rules/max-lines-per-function&quot;&gt;max-lines-per-function&lt;/a&gt; correct code’s max value (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10513&quot;&gt;#10513&lt;/a&gt;) (Rhys Bower)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.0.0 released</title>
    <link href="https://eslint.org/blog/2018/06/eslint-v5.0.0-released/"/>
    <updated>2018-06-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/06/eslint-v5.0.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;There are several breaking changes in 5.0.0. We’ve created a &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-5.0.0&quot;&gt;migration guide&lt;/a&gt; to explain the breaking changes and describe how to upgrade.&lt;/li&gt;
&lt;li&gt;Three new rules have been added:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;&lt;code&gt;prefer-object-spread&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/max-classes-per-file&quot;&gt;&lt;code&gt;max-classes-per-file&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/max-lines-per-function&quot;&gt;&lt;code&gt;max-lines-per-function&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#cliengineexecuteonfiles&quot;&gt;&lt;code&gt;CLIEngine.executeOnFiles&lt;/code&gt;&lt;/a&gt; API now has a &lt;code&gt;globInputPaths&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;&lt;code&gt;one-var&lt;/code&gt;&lt;/a&gt; rule is now autofixable.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/array-element-newline&quot;&gt;&lt;code&gt;array-element-newline&lt;/code&gt;&lt;/a&gt; rule now has a &lt;code&gt;consistent&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;&lt;code&gt;camelcase&lt;/code&gt;&lt;/a&gt; rule now has an &lt;code&gt;ignoreDestructuring&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;&lt;code&gt;valid-jsdoc&lt;/code&gt;&lt;/a&gt; rule now has a &lt;code&gt;requireParamType&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/func-name-matching&quot;&gt;&lt;code&gt;func-name-matching&lt;/code&gt;&lt;/a&gt; rule now has a &lt;code&gt;considerPropertyDescriptor&lt;/code&gt; option.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;Changes since v5.0.0-rc.0:&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0feedfd&quot;&gt;0feedfd&lt;/a&gt; New: Added &lt;a href=&quot;https://eslint.org/docs/rules/max-lines-per-function&quot;&gt;max-lines-per-function&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9842&quot;&gt;#9842&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10188&quot;&gt;#10188&lt;/a&gt;) (peteward44)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7a7580b&quot;&gt;7a7580b&lt;/a&gt; Update: Add considerPropertyDescriptor option to &lt;a href=&quot;https://eslint.org/docs/rules/func-name-matching&quot;&gt;func-name-matching&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9078&quot;&gt;#9078&lt;/a&gt;) (Dieter Luypaert)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f93d6ff&quot;&gt;f93d6ff&lt;/a&gt; Fix: do not fail on unknown operators from custom parsers (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10475&quot;&gt;#10475&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10476&quot;&gt;#10476&lt;/a&gt;) (Rubén Norte)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05343fd&quot;&gt;05343fd&lt;/a&gt; Fix: add parens for yield statement (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10432&quot;&gt;#10432&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10468&quot;&gt;#10468&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d477c5e&quot;&gt;d477c5e&lt;/a&gt; Fix: check destructuring for “&lt;a href=&quot;https://eslint.org/docs/rules/no-shadow-restricted-names&quot;&gt;no-shadow-restricted-names&lt;/a&gt;” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10467&quot;&gt;#10467&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10470&quot;&gt;#10470&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0a0418&quot;&gt;e0a0418&lt;/a&gt; Fix: crash on optional catch binding (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10429&quot;&gt;#10429&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/077358b&quot;&gt;077358b&lt;/a&gt; Docs: &lt;a href=&quot;https://eslint.org/docs/rules/no-process-exit&quot;&gt;no-process-exit&lt;/a&gt;: recommend process.exitCode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10478&quot;&gt;#10478&lt;/a&gt;) (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de4dba9&quot;&gt;de4dba9&lt;/a&gt; Docs: styling team members (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10460&quot;&gt;#10460&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e453a3&quot;&gt;5e453a3&lt;/a&gt; Docs: display team members in tables. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10433&quot;&gt;#10433&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1895eb&quot;&gt;b1895eb&lt;/a&gt; Docs: Restore intentional spelling mistake (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10459&quot;&gt;#10459&lt;/a&gt;) (Wilfred Hughes)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/daefbdb&quot;&gt;daefbdb&lt;/a&gt; Upgrade: eslint-scope and espree to 4.0.0 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/10458&quot;&gt;#10458&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10500&quot;&gt;#10500&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.0.0-rc.0 released</title>
    <link href="https://eslint.org/blog/2018/06/eslint-v5.0.0-rc.0-released/"/>
    <updated>2018-06-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/06/eslint-v5.0.0-rc.0-released/</id>
    <content type="html">&lt;p&gt;Note: This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;GitHub repo&lt;/a&gt; or joining our &lt;a href=&quot;https://gitter.im/eslint/eslint&quot;&gt;Gitter channel&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@5.0.0-rc.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/5.0.0/user-guide/migrating-to-5.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/abf400d&quot;&gt;abf400d&lt;/a&gt; Update: Add ignoreDestructing option to &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9807&quot;&gt;#9807&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10373&quot;&gt;#10373&lt;/a&gt;) (Andrew Lunny)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/640bf07&quot;&gt;640bf07&lt;/a&gt; Update: Fixes multiline &lt;a href=&quot;https://eslint.org/docs/rules/no-warning-comments&quot;&gt;no-warning-comments&lt;/a&gt; rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9884&quot;&gt;#9884&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10381&quot;&gt;#10381&lt;/a&gt;) (Scott Stern)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dc4075e&quot;&gt;dc4075e&lt;/a&gt; Update: fix false negative in &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;no-use-before-define&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10227&quot;&gt;#10227&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10396&quot;&gt;#10396&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/917108d&quot;&gt;917108d&lt;/a&gt; Update: Add requireParamType option to &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;valid-jsdoc&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6753&quot;&gt;#6753&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10220&quot;&gt;#10220&lt;/a&gt;) (Tomasz Sterna)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe8bec3&quot;&gt;fe8bec3&lt;/a&gt; Fix: fix writing config file when &lt;code&gt;source&lt;/code&gt; is &lt;code&gt;prompt&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10422&quot;&gt;#10422&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e9f33a&quot;&gt;3e9f33a&lt;/a&gt; Fix: prevent crashing from JSON parsing error (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10364&quot;&gt;#10364&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10376&quot;&gt;#10376&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/636457d&quot;&gt;636457d&lt;/a&gt; Fix: parse later ES files in &lt;code&gt;eslint --init&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10003&quot;&gt;#10003&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10378&quot;&gt;#10378&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3721841&quot;&gt;3721841&lt;/a&gt; Docs: Add new experimental syntax policy to README (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9804&quot;&gt;#9804&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10408&quot;&gt;#10408&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0aae3c&quot;&gt;d0aae3c&lt;/a&gt; Docs: Create docs landing page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10453&quot;&gt;#10453&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1984c21&quot;&gt;1984c21&lt;/a&gt; Docs: move custom parsers docs into a page (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9919&quot;&gt;#9919&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10431&quot;&gt;#10431&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/400d4b5&quot;&gt;400d4b5&lt;/a&gt; Docs: Add rest and spread operator changes to migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10416&quot;&gt;#10416&lt;/a&gt;) (Yannick Croissant)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2b394d&quot;&gt;e2b394d&lt;/a&gt; Upgrade: espree and eslint-scope to rc versions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10457&quot;&gt;#10457&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e7bdd02&quot;&gt;e7bdd02&lt;/a&gt; Upgrade: Consume espree@4.0.0-alpha.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10410&quot;&gt;#10410&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/831c39a&quot;&gt;831c39a&lt;/a&gt; Build: Adding rc release script to package.json (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10456&quot;&gt;#10456&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a370da2&quot;&gt;a370da2&lt;/a&gt; Chore: small opt to improve readability (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10241&quot;&gt;#10241&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.0.0-alpha.4 released</title>
    <link href="https://eslint.org/blog/2018/05/eslint-v5.0.0-alpha.4-released/"/>
    <updated>2018-05-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/05/eslint-v5.0.0-alpha.4-released/</id>
    <content type="html">&lt;p&gt;Note: This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;GitHub repo&lt;/a&gt; or joining our &lt;a href=&quot;https://gitter.im/eslint/eslint&quot;&gt;Gitter channel&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@5.0.0-alpha.4 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/5.0.0/user-guide/migrating-to-5.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/465e615&quot;&gt;465e615&lt;/a&gt; New: prompt users before installing dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10353&quot;&gt;#10353&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/93c9a52&quot;&gt;93c9a52&lt;/a&gt; Update: config-validator should validate overrides (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10357&quot;&gt;#10357&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2e0398&quot;&gt;c2e0398&lt;/a&gt; Update: Improves the &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;prefer-object-spread&lt;/a&gt; rule by removing extraneous visitors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10351&quot;&gt;#10351&lt;/a&gt;) (Sharmila Jesupaul)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d848949&quot;&gt;d848949&lt;/a&gt; Update: Support JSXFragment node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9662&quot;&gt;#9662&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9664&quot;&gt;#9664&lt;/a&gt;) (Clement Hoang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c922ce&quot;&gt;9c922ce&lt;/a&gt; Update: Add “consistent” option to &lt;a href=&quot;https://eslint.org/docs/rules/array-element-newline&quot;&gt;array-element-newline&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9457&quot;&gt;#9457&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10355&quot;&gt;#10355&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/240c1a4&quot;&gt;240c1a4&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;prefer-const&lt;/a&gt; object destructuring false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9108&quot;&gt;#9108&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10368&quot;&gt;#10368&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/65bce3a&quot;&gt;65bce3a&lt;/a&gt; Fix: ensure --stdin flag works when stdin is piped asynchronously (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10393&quot;&gt;#10393&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b7a70c&quot;&gt;8b7a70c&lt;/a&gt; Fix: handle &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; with no semicolon (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10330&quot;&gt;#10330&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10371&quot;&gt;#10371&lt;/a&gt;) (Malcolm Groves)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb148aa&quot;&gt;fb148aa&lt;/a&gt; Fix: allow no tokens after &lt;code&gt;return&lt;/code&gt; keyword (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10372&quot;&gt;#10372&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10379&quot;&gt;#10379&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a812845&quot;&gt;a812845&lt;/a&gt; Fix: allow array spread for &lt;a href=&quot;https://eslint.org/docs/rules/prefer-object-spread&quot;&gt;prefer-object-spread&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10344&quot;&gt;#10344&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10347&quot;&gt;#10347&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce3e62a&quot;&gt;ce3e62a&lt;/a&gt; Docs: remove test coverage badge (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10407&quot;&gt;#10407&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/074bc1c&quot;&gt;074bc1c&lt;/a&gt; Docs: polish for &lt;a href=&quot;https://eslint.org/docs/rules/max-classes-per-file&quot;&gt;max-classes-per-file&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10377&quot;&gt;#10377&lt;/a&gt;) (Pig Fang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/448fc52&quot;&gt;448fc52&lt;/a&gt; Docs: Update link to Integrations / Build tools / Start (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10354&quot;&gt;#10354&lt;/a&gt;) (Kir Belevich)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f268128&quot;&gt;f268128&lt;/a&gt; Build: add Node v10 to travis (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10262&quot;&gt;#10262&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9b23a9&quot;&gt;b9b23a9&lt;/a&gt; Chore: rm unused argument (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10400&quot;&gt;#10400&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e25fc22&quot;&gt;e25fc22&lt;/a&gt; Chore: remove assert.doesNotThrow in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10199&quot;&gt;#10199&lt;/a&gt;) (Ruben Bridgewater)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e5e9be&quot;&gt;4e5e9be&lt;/a&gt; Chore: avoid unnecessary filesystem accesses during config search (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10359&quot;&gt;#10359&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/363da01&quot;&gt;363da01&lt;/a&gt; Chore: avoid code duplication in rule severity checking (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10358&quot;&gt;#10358&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.0.0-alpha.3 released</title>
    <link href="https://eslint.org/blog/2018/05/eslint-v5.0.0-alpha.3-released/"/>
    <updated>2018-05-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/05/eslint-v5.0.0-alpha.3-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Two new rules have been added: &lt;a href=&quot;https://eslint.org/docs/5.0.0/rules/prefer-object-spread&quot;&gt;&lt;code&gt;prefer-object-spread&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/5.0.0/rules/max-classes-per-file&quot;&gt;&lt;code&gt;max-classes-per-file&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/5.0.0/developer-guide/nodejs-api#cliengine&quot;&gt;&lt;code&gt;CLIEngine&lt;/code&gt;&lt;/a&gt; API now supports a &lt;code&gt;globInputPaths&lt;/code&gt; option to disable glob resolution when linting files.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@5.0.0-alpha.3 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/5.0.0/user-guide/migrating-to-5.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41f0f6e&quot;&gt;41f0f6e&lt;/a&gt; Breaking: report multiline eslint-disable-line directives (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10334&quot;&gt;#10334&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10335&quot;&gt;#10335&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/09dde26&quot;&gt;09dde26&lt;/a&gt; Breaking: new &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt;/&lt;a href=&quot;https://eslint.org/docs/rules/no-self-assign&quot;&gt;no-self-assign&lt;/a&gt; default (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10215&quot;&gt;#10215&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10337&quot;&gt;#10337&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a6b399&quot;&gt;1a6b399&lt;/a&gt; New: Adds &lt;a href=&quot;https://eslint.org/docs/5.0.0/rules/prefer-object-spread&quot;&gt;prefer-object-spread&lt;/a&gt; rule (refs: &lt;a href=&quot;https://github.com/eslint/eslint/issues/7230&quot;&gt;#7230&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9955&quot;&gt;#9955&lt;/a&gt;) (Sharmila Jesupaul)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4109b2&quot;&gt;c4109b2&lt;/a&gt; New: add &lt;a href=&quot;https://eslint.org/docs/5.0.0/rules/max-classes-per-file&quot;&gt;max-classes-per-file&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10163&quot;&gt;#10163&lt;/a&gt;) (James Garbutt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/514013c&quot;&gt;514013c&lt;/a&gt; New: Add &lt;code&gt;globInputPaths&lt;/code&gt; CLIEngine option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9972&quot;&gt;#9972&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10191&quot;&gt;#10191&lt;/a&gt;) (Pierre Vanduynslager)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5b33be&quot;&gt;e5b33be&lt;/a&gt; Update: Add --fix for &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9072&quot;&gt;#9072&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10040&quot;&gt;#10040&lt;/a&gt;) (Sebastian Malton)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d65f11d&quot;&gt;d65f11d&lt;/a&gt; Fix: correct comma fix in spare array (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10273&quot;&gt;#10273&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10329&quot;&gt;#10329&lt;/a&gt;) (Malcolm Groves)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c343d86&quot;&gt;c343d86&lt;/a&gt; Fix: do not autofix octal escape sequence (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10031&quot;&gt;#10031&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10240&quot;&gt;#10240&lt;/a&gt;) (Malcolm Groves)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb6090f&quot;&gt;bb6090f&lt;/a&gt; Fix: Throw error when --ignore-path not a file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10076&quot;&gt;#10076&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10205&quot;&gt;#10205&lt;/a&gt;) (Malcolm Groves)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82757b2&quot;&gt;82757b2&lt;/a&gt; Docs: Adding a little guidance to rule documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10301&quot;&gt;#10301&lt;/a&gt;) (Justin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2f30aa5&quot;&gt;2f30aa5&lt;/a&gt; Docs: add a better vim linting engine (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10292&quot;&gt;#10292&lt;/a&gt;) (Jon Smithers)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df2c1fb&quot;&gt;df2c1fb&lt;/a&gt; Docs: improve formatter guide (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9550&quot;&gt;#9550&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10294&quot;&gt;#10294&lt;/a&gt;) (Dominic Lee)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a960d69&quot;&gt;a960d69&lt;/a&gt; Docs: remove outdated notes from migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10279&quot;&gt;#10279&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b6b2b2&quot;&gt;1b6b2b2&lt;/a&gt; Build: remove trailing spaces in blogpost template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10280&quot;&gt;#10280&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4ccd25a&quot;&gt;4ccd25a&lt;/a&gt; Chore: add eslint-plugin-node to eslint-config-eslint(fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10319&quot;&gt;#10319&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10320&quot;&gt;#10320&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02e7b28&quot;&gt;02e7b28&lt;/a&gt; Chore: upgrade deps (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10339&quot;&gt;#10339&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1397179&quot;&gt;1397179&lt;/a&gt; Chore: unskip test for scope analysis (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10336&quot;&gt;#10336&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/99b842d&quot;&gt;99b842d&lt;/a&gt; Chore: upgrade mock-fs@4.5.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10325&quot;&gt;#10325&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe91859&quot;&gt;fe91859&lt;/a&gt; Chore: Update issue templates with new format (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10309&quot;&gt;#10309&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7330c1&quot;&gt;f7330c1&lt;/a&gt; Chore: Add ESLint path to plugin-missing message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10283&quot;&gt;#10283&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.0.0-alpha.2 released</title>
    <link href="https://eslint.org/blog/2018/04/eslint-v5.0.0-alpha.2-released/"/>
    <updated>2018-04-27T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/04/eslint-v5.0.0-alpha.2-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@5.0.0-alpha.2 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/5.0.0/user-guide/migrating-to-5.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02e44a5&quot;&gt;02e44a5&lt;/a&gt; Breaking: remove TDZ scopes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10245&quot;&gt;#10245&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10270&quot;&gt;#10270&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c74933b&quot;&gt;c74933b&lt;/a&gt; Breaking: remove extra check in getScope (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10246&quot;&gt;#10246&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10247&quot;&gt;#10247&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10252&quot;&gt;#10252&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b7c6ea&quot;&gt;8b7c6ea&lt;/a&gt; Breaking: report fatal error for linting nonexistent files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7390&quot;&gt;#7390&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10143&quot;&gt;#10143&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9100819&quot;&gt;9100819&lt;/a&gt; Breaking: fix plugin resolver in extends (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9904&quot;&gt;#9904&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10236&quot;&gt;#10236&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c45f1d0&quot;&gt;c45f1d0&lt;/a&gt; Breaking: add rules to recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8865&quot;&gt;#8865&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10158&quot;&gt;#10158&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a82cbea&quot;&gt;a82cbea&lt;/a&gt; Update: re-enable experimentalObjectRestSpread (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9990&quot;&gt;#9990&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10230&quot;&gt;#10230&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d443a0&quot;&gt;1d443a0&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;valid-jsdoc&lt;/a&gt; does not know async function returns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9881&quot;&gt;#9881&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10161&quot;&gt;#10161&lt;/a&gt;) (Rachael Sim)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9c7371&quot;&gt;f9c7371&lt;/a&gt; Fix: do not autofix &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; with comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10038&quot;&gt;#10038&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10238&quot;&gt;#10238&lt;/a&gt;) (Malcolm Groves)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/510ca8b&quot;&gt;510ca8b&lt;/a&gt; Docs: make grammatical tweaks in migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10278&quot;&gt;#10278&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8799972&quot;&gt;8799972&lt;/a&gt; Docs: make template link wording more clear (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10219&quot;&gt;#10219&lt;/a&gt;) (David Luzar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4672b56&quot;&gt;4672b56&lt;/a&gt; Docs: Correct wording in the &lt;code&gt;smart-tabs&lt;/code&gt; docs page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10277&quot;&gt;#10277&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85a5191&quot;&gt;85a5191&lt;/a&gt; Docs: Update JSCS FAQ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10221&quot;&gt;#10221&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e89d5c&quot;&gt;8e89d5c&lt;/a&gt; Docs: Fix typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10223&quot;&gt;#10223&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c0c331e&quot;&gt;c0c331e&lt;/a&gt; Docs: Add Prettier to FAQ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10222&quot;&gt;#10222&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2443627&quot;&gt;2443627&lt;/a&gt; Docs: add backticks in &lt;a href=&quot;https://eslint.org/docs/rules/getter-return&quot;&gt;getter-return&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10218&quot;&gt;#10218&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74bb5b5&quot;&gt;74bb5b5&lt;/a&gt; Docs: Fix misspelling in changelog (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10216&quot;&gt;#10216&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c2e83a&quot;&gt;7c2e83a&lt;/a&gt; Chore: improve tests and checking for equality (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10182&quot;&gt;#10182&lt;/a&gt;) (Ruben Bridgewater)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b32d1f4&quot;&gt;b32d1f4&lt;/a&gt; Chore: upgrade eslump@1.6.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10258&quot;&gt;#10258&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7938bf1&quot;&gt;7938bf1&lt;/a&gt; Chore: update eslint-fuzzer ecmaVersion to 2018 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10255&quot;&gt;#10255&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2953ec&quot;&gt;a2953ec&lt;/a&gt; Chore: small opt to improve readability (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10225&quot;&gt;#10225&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.0.0-alpha.1 released</title>
    <link href="https://eslint.org/blog/2018/04/eslint-v5.0.0-alpha.1-released/"/>
    <updated>2018-04-13T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/04/eslint-v5.0.0-alpha.1-released/</id>
    <content type="html">&lt;p&gt;Note: This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;GitHub repo&lt;/a&gt; or joining our &lt;a href=&quot;https://gitter.im/eslint/eslint&quot;&gt;Gitter channel&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@5.0.0-alpha.1 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/5.0.0/user-guide/migrating-to-5.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b2a48a9&quot;&gt;b2a48a9&lt;/a&gt; Breaking: stop using fake &lt;code&gt;context._linter&lt;/code&gt; property (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10140&quot;&gt;#10140&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10209&quot;&gt;#10209&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a039956&quot;&gt;a039956&lt;/a&gt; Breaking: remove deprecated browser/jest/node globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10141&quot;&gt;#10141&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10210&quot;&gt;#10210&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2324570&quot;&gt;2324570&lt;/a&gt; Breaking: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; reports all after-used params (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9909&quot;&gt;#9909&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10119&quot;&gt;#10119&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b77846d&quot;&gt;b77846d&lt;/a&gt; Breaking: drop supporting Node.js 4 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10052&quot;&gt;#10052&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10074&quot;&gt;#10074&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/218ee57&quot;&gt;218ee57&lt;/a&gt; Fix: report &lt;a href=&quot;https://eslint.org/docs/rules/no-case-declarations&quot;&gt;no-case-declarations&lt;/a&gt; from declarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10048&quot;&gt;#10048&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10167&quot;&gt;#10167&lt;/a&gt;) (Carlo Abelli)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/98f1cad&quot;&gt;98f1cad&lt;/a&gt; Docs: update migration guide with latest changes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10212&quot;&gt;#10212&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71167be&quot;&gt;71167be&lt;/a&gt; Docs: fix wrong config in &lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;id-length&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10196&quot;&gt;#10196&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/731da1e&quot;&gt;731da1e&lt;/a&gt; Docs: fix code in correct example. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10195&quot;&gt;#10195&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3780915&quot;&gt;3780915&lt;/a&gt; Docs: fix some small errors in examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10194&quot;&gt;#10194&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e7252f&quot;&gt;1e7252f&lt;/a&gt; Docs: Add more related rules for &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-spacing&quot;&gt;object-curly-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10175&quot;&gt;#10175&lt;/a&gt;) (Saugat Acharya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5cf9cc&quot;&gt;e5cf9cc&lt;/a&gt; Docs: Reorder README sections (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10172&quot;&gt;#10172&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0dc2e3&quot;&gt;d0dc2e3&lt;/a&gt; Docs: Add Missing Quotes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10162&quot;&gt;#10162&lt;/a&gt;) (Samarth Verma)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f595fd8&quot;&gt;f595fd8&lt;/a&gt; Upgrade: upgrade deps (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10184&quot;&gt;#10184&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7765fc4&quot;&gt;7765fc4&lt;/a&gt; Upgrade: ajv@^6.0.1, still using json schema draft 04 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9856&quot;&gt;#9856&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/869c9f5&quot;&gt;869c9f5&lt;/a&gt; Upgrade: babelify (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10185&quot;&gt;#10185&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7ee1ed&quot;&gt;b7ee1ed&lt;/a&gt; Upgrade: upgrade devdeps (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10178&quot;&gt;#10178&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f3a0291&quot;&gt;f3a0291&lt;/a&gt; Upgrade: Update dependencies. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10168&quot;&gt;#10168&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d6e052&quot;&gt;7d6e052&lt;/a&gt; Upgrade: esquery@^1.0.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8733&quot;&gt;#8733&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10170&quot;&gt;#10170&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7a63bfa&quot;&gt;7a63bfa&lt;/a&gt; Upgrade: eslint-release to v0.11.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10156&quot;&gt;#10156&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7a1a7a&quot;&gt;b7a1a7a&lt;/a&gt; Build: Gensite creates prerelease dirs if needed (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10154&quot;&gt;#10154&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e60017&quot;&gt;2e60017&lt;/a&gt; Chore: remove concat-stream dependency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10173&quot;&gt;#10173&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f69f11&quot;&gt;7f69f11&lt;/a&gt; Chore:  rearrange init options. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10131&quot;&gt;#10131&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81629d2&quot;&gt;81629d2&lt;/a&gt; Chore: enable rest/spread rules on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10211&quot;&gt;#10211&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd34d44&quot;&gt;cd34d44&lt;/a&gt; Chore: avoid modifying global state when tests fail (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10201&quot;&gt;#10201&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db1a582&quot;&gt;db1a582&lt;/a&gt; Chore: Add debug logging for CLI args as they came in (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10174&quot;&gt;#10174&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c85578f&quot;&gt;c85578f&lt;/a&gt; Chore: Remove &lt;code&gt;esprima-fb&lt;/code&gt; dependency. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10171&quot;&gt;#10171&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v5.0.0-alpha.0 released</title>
    <link href="https://eslint.org/blog/2018/03/eslint-v5.0.0-alpha.0-released/"/>
    <updated>2018-03-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/03/eslint-v5.0.0-alpha.0-released/</id>
    <content type="html">&lt;p&gt;Note: This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;GitHub repo&lt;/a&gt; or joining our &lt;a href=&quot;https://gitter.im/eslint/eslint&quot;&gt;Gitter channel&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@5.0.0-alpha.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/5.0.0/user-guide/migrating-to-5.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f4b3af586&quot;&gt;f4b3af586&lt;/a&gt; Breaking: Upgrade to Espree v4 alpha (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9990&quot;&gt;#9990&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10152&quot;&gt;#10152&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d440e8496&quot;&gt;d440e8496&lt;/a&gt; Breaking: support @scope shorthand in plugins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9903&quot;&gt;#9903&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9905&quot;&gt;#9905&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9ee9ae87&quot;&gt;a9ee9ae87&lt;/a&gt; Breaking: require rules to provide report messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10011&quot;&gt;#10011&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10057&quot;&gt;#10057&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c383bc57f&quot;&gt;c383bc57f&lt;/a&gt; Breaking: Make require(‘eslint’).linter non-enumerable (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9270&quot;&gt;#9270&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9692&quot;&gt;#9692&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4eaebe5ae&quot;&gt;4eaebe5ae&lt;/a&gt; Breaking: set &lt;code&gt;parent&lt;/code&gt; of AST nodes before rules run (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9122&quot;&gt;#9122&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10014&quot;&gt;#10014&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/91ece32ac&quot;&gt;91ece32ac&lt;/a&gt; Breaking: remove special exception for linting empty files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9534&quot;&gt;#9534&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10013&quot;&gt;#10013&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27e3f24d8&quot;&gt;27e3f24d8&lt;/a&gt; Breaking: remove &lt;code&gt;source&lt;/code&gt; property from linting messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7358&quot;&gt;#7358&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10012&quot;&gt;#10012&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4c3b3c56&quot;&gt;e4c3b3c56&lt;/a&gt; Breaking: use an exit code of 2 for fatal config problems (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9384&quot;&gt;#9384&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10009&quot;&gt;#10009&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2a7ecaa2a&quot;&gt;2a7ecaa2a&lt;/a&gt; Breaking: Use &lt;a href=&quot;https://eslint.org/docs/rules/strict&quot;&gt;strict&lt;/a&gt; equality in RuleTester comparisons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9417&quot;&gt;#9417&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10008&quot;&gt;#10008&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/462b058d0&quot;&gt;462b058d0&lt;/a&gt; Update: Include debugging information when rule throws error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9742&quot;&gt;#9742&lt;/a&gt;) (Patrick Hayes)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea6fb17ae&quot;&gt;ea6fb17ae&lt;/a&gt; Update: Make &lt;a href=&quot;https://eslint.org/docs/rules/no-cond-assign&quot;&gt;no-cond-assign&lt;/a&gt; work for ternaries (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10091&quot;&gt;#10091&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10109&quot;&gt;#10109&lt;/a&gt;) (Aaron Harper)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0bc4a3835&quot;&gt;0bc4a3835&lt;/a&gt; Fix: Make rule-tester strictly check messageId. (ref &lt;a href=&quot;https://github.com/eslint/eslint/issues/9890&quot;&gt;#9890&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9908&quot;&gt;#9908&lt;/a&gt;) (Jacques Favreau)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3351129f9&quot;&gt;3351129f9&lt;/a&gt; Docs: add v5.0.0 migration guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10142&quot;&gt;#10142&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10147&quot;&gt;#10147&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/65cc83498&quot;&gt;65cc83498&lt;/a&gt; Docs: Ensure CLI doc sections match command line help order (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10144&quot;&gt;#10144&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c791746b&quot;&gt;9c791746b&lt;/a&gt; Docs: Update &lt;a href=&quot;https://eslint.org/docs/rules/capitalized-comments&quot;&gt;capitalized-comments&lt;/a&gt; with missing letters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10135&quot;&gt;#10135&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10134&quot;&gt;#10134&lt;/a&gt;) (jasonfry)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e66bfbc4&quot;&gt;9e66bfbc4&lt;/a&gt; Docs: remove eslint vs jshint from faq (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10108&quot;&gt;#10108&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/692e3830b&quot;&gt;692e3830b&lt;/a&gt; Docs: Add modified variable examples for &lt;a href=&quot;https://eslint.org/docs/rules/no-loop-func&quot;&gt;no-loop-func&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9527&quot;&gt;#9527&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10098&quot;&gt;#10098&lt;/a&gt;) (Rachael Sim)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2f98dd13&quot;&gt;f2f98dd13&lt;/a&gt; Build: make prerelease script publish to GitHub/website (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10151&quot;&gt;#10151&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a020dc14&quot;&gt;9a020dc14&lt;/a&gt; Chore: refactor --no-ignore flag logic (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10146&quot;&gt;#10146&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f61a0ded&quot;&gt;4f61a0ded&lt;/a&gt; Chore: add noopener/noreferrer (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/837edc7c0&quot;&gt;837edc7c0&lt;/a&gt; Chore: Uncommented test for empty program for no-invalid-meta (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10046&quot;&gt;#10046&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.19.1 released</title>
    <link href="https://eslint.org/blog/2018/03/eslint-v4.19.1-released/"/>
    <updated>2018-03-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/03/eslint-v4.19.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ff5d11&quot;&gt;3ff5d11&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-regexp&quot;&gt;no-invalid-regexp&lt;/a&gt; not understand variable for flags (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10112&quot;&gt;#10112&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10113&quot;&gt;#10113&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/abc765c&quot;&gt;abc765c&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; minProperties w/default export (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10101&quot;&gt;#10101&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10103&quot;&gt;#10103&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6f9e155&quot;&gt;6f9e155&lt;/a&gt; Docs: Update ambiguous for…in example for &lt;a href=&quot;https://eslint.org/docs/rules/guard-for-in&quot;&gt;guard-for-in&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10114&quot;&gt;#10114&lt;/a&gt;) (CJ R)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0360cc2&quot;&gt;0360cc2&lt;/a&gt; Chore: Adding debug logs on successful plugin loads (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10100&quot;&gt;#10100&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a717c5d&quot;&gt;a717c5d&lt;/a&gt; Chore: Adding log at beginning of unit tests in Makefile.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10102&quot;&gt;#10102&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.19.0 released</title>
    <link href="https://eslint.org/blog/2018/03/eslint-v4.19.0-released/"/>
    <updated>2018-03-16T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/03/eslint-v4.19.0-released/</id>
    <content type="html">&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; rule now has a &lt;code&gt;consecutive&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;Core rules have been updated to support the new RegExp features introduced in ES2018 (when using the appropriate parser options).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/55a1593&quot;&gt;55a1593&lt;/a&gt; Update: consecutive option for &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4680&quot;&gt;#4680&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9994&quot;&gt;#9994&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e68be6&quot;&gt;2e68be6&lt;/a&gt; Update: give a node at least the indentation of its parent (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9995&quot;&gt;#9995&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10054&quot;&gt;#10054&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/72ca5b3&quot;&gt;72ca5b3&lt;/a&gt; Update: Correctly &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; JSXText with trailing linebreaks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9878&quot;&gt;#9878&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10055&quot;&gt;#10055&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d3814e&quot;&gt;8d3814e&lt;/a&gt; Fix: false positive about ES2018 RegExp enhancements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9893&quot;&gt;#9893&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10062&quot;&gt;#10062&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/935f4e4&quot;&gt;935f4e4&lt;/a&gt; Docs: Clarify default ignoring of node_modules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10092&quot;&gt;#10092&lt;/a&gt;) (Matijs Brinkhuis)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/72ed3db&quot;&gt;72ed3db&lt;/a&gt; Docs: Wrap &lt;code&gt;Buffer()&lt;/code&gt; in backticks in &lt;a href=&quot;https://eslint.org/docs/rules/no-buffer-constructor&quot;&gt;&lt;code&gt;no-buffer-constructor&lt;/code&gt;&lt;/a&gt; rule description (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10084&quot;&gt;#10084&lt;/a&gt;) (Stephen Edgar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3aded2f&quot;&gt;3aded2f&lt;/a&gt; Docs: Fix lodash typos, make spacing consistent (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10073&quot;&gt;#10073&lt;/a&gt;) (Josh Smith)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66a1e9a&quot;&gt;66a1e9a&lt;/a&gt; Docs: fix possible typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10060&quot;&gt;#10060&lt;/a&gt;) (Vse Mozhet Byt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2a4c838&quot;&gt;2a4c838&lt;/a&gt; Docs: Update ECMAScript versions in FAQ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10047&quot;&gt;#10047&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e33bb64&quot;&gt;e33bb64&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/no-param-reassign&quot;&gt;no-param-reassign&lt;/a&gt; on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10065&quot;&gt;#10065&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.18.2 released</title>
    <link href="https://eslint.org/blog/2018/03/eslint-v4.18.2-released/"/>
    <updated>2018-03-02T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/03/eslint-v4.18.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6b71fd0&quot;&gt;6b71fd0&lt;/a&gt; Fix: table@4.0.2, because 4.0.3 needs “ajv”: “^6.0.1” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10022&quot;&gt;#10022&lt;/a&gt;) (Mathieu Seiler)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6901d0&quot;&gt;f6901d0&lt;/a&gt; Fix: remove catastrophic backtracking vulnerability (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/10002&quot;&gt;#10002&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10019&quot;&gt;#10019&lt;/a&gt;) (Jamie Davis)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aea07dc&quot;&gt;aea07dc&lt;/a&gt; Fix: Make &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt; ignoreStrings ignore JSXText (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9954&quot;&gt;#9954&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9985&quot;&gt;#9985&lt;/a&gt;) (Rachael Sim)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c697de&quot;&gt;3c697de&lt;/a&gt; Chore: fix incorrect comment about linter.verify return value (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10030&quot;&gt;#10030&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9df8653&quot;&gt;9df8653&lt;/a&gt; Chore: refactor parser-loading out of linter.verify (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10028&quot;&gt;#10028&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4f52ce&quot;&gt;e4f52ce&lt;/a&gt; Chore: Simplify dataflow in linter.verify (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10020&quot;&gt;#10020&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/33177cd&quot;&gt;33177cd&lt;/a&gt; Chore: make library files non-executable (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10021&quot;&gt;#10021&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/558ccba&quot;&gt;558ccba&lt;/a&gt; Chore: refactor directive comment processing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10007&quot;&gt;#10007&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/18e15d9&quot;&gt;18e15d9&lt;/a&gt; Chore: avoid useless catch clauses that just rethrow errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10010&quot;&gt;#10010&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1c3759&quot;&gt;a1c3759&lt;/a&gt; Chore: refactor populating configs with defaults in linter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/10006&quot;&gt;#10006&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.18.1 released</title>
    <link href="https://eslint.org/blog/2018/02/eslint-v4.18.1-released/"/>
    <updated>2018-02-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/02/eslint-v4.18.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f417506&quot;&gt;f417506&lt;/a&gt; Fix: ensure &lt;a href=&quot;https://eslint.org/docs/rules/no-await-in-loop&quot;&gt;no-await-in-loop&lt;/a&gt; reports the correct node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9992&quot;&gt;#9992&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9993&quot;&gt;#9993&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e99363&quot;&gt;3e99363&lt;/a&gt; Docs: Fixed typo in &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;key-spacing&lt;/a&gt; rule doc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9987&quot;&gt;#9987&lt;/a&gt;) (Jaid)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c2cd70&quot;&gt;7c2cd70&lt;/a&gt; Docs: deprecate experimentalObjectRestSpread (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9986&quot;&gt;#9986&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.18.0 released</title>
    <link href="https://eslint.org/blog/2018/02/eslint-v4.18.0-released/"/>
    <updated>2018-02-16T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/02/eslint-v4.18.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e4ae22&quot;&gt;0e4ae22&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; bug with binary operators/ignoredNodes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9882&quot;&gt;#9882&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9951&quot;&gt;#9951&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/47ac478&quot;&gt;47ac478&lt;/a&gt; Update: add named imports and exports for &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9876&quot;&gt;#9876&lt;/a&gt;) (Nicholas Chua)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4a6f22e&quot;&gt;4a6f22e&lt;/a&gt; Update: support eslint-disable-* block comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8781&quot;&gt;#8781&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9745&quot;&gt;#9745&lt;/a&gt;) (Erin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e8efdd0&quot;&gt;e8efdd0&lt;/a&gt; Fix: support Rest/Spread Properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9885&quot;&gt;#9885&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9943&quot;&gt;#9943&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f012b8c&quot;&gt;f012b8c&lt;/a&gt; Fix: support Async iteration (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9891&quot;&gt;#9891&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9957&quot;&gt;#9957&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74fa253&quot;&gt;74fa253&lt;/a&gt; Docs: Clarify &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-operators&quot;&gt;no-mixed-operators&lt;/a&gt; options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9962&quot;&gt;#9962&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9964&quot;&gt;#9964&lt;/a&gt;) (Ivan Hayes)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/426868f&quot;&gt;426868f&lt;/a&gt; Docs: clean up &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;key-spacing&lt;/a&gt; docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9900&quot;&gt;#9900&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9963&quot;&gt;#9963&lt;/a&gt;) (Abid Uzair)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/777283b&quot;&gt;777283b&lt;/a&gt; Docs: Propose fix typo for function (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9965&quot;&gt;#9965&lt;/a&gt;) (John Eismeier)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf3d494&quot;&gt;bf3d494&lt;/a&gt; Docs: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt; ignorePattern example. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9956&quot;&gt;#9956&lt;/a&gt;) (Tim Martin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d64fbb4&quot;&gt;d64fbb4&lt;/a&gt; Docs: fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt;.md example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9930&quot;&gt;#9930&lt;/a&gt;) (Vse Mozhet Byt)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/70f22f3&quot;&gt;70f22f3&lt;/a&gt; Chore: Apply memoization to config creation within glob utils (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9944&quot;&gt;#9944&lt;/a&gt;) (Kenton Jacobsen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8d343f&quot;&gt;f8d343f&lt;/a&gt; Chore: Fix default issue template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9946&quot;&gt;#9946&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.17.0 released</title>
    <link href="https://eslint.org/blog/2018/02/eslint-v4.17.0-released/"/>
    <updated>2018-02-02T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/02/eslint-v4.17.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A new &lt;code&gt;multiline&lt;/code&gt; option has been added to the &lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;&lt;code&gt;padding-line-between-statements&lt;/code&gt;&lt;/a&gt; rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1da1ada&quot;&gt;1da1ada&lt;/a&gt; Update: Add “multiline” type to &lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;padding-line-between-statements&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8668&quot;&gt;#8668&lt;/a&gt;) (Matthew Bennett)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dc80487&quot;&gt;dc80487&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/space-unary-ops&quot;&gt;space-unary-ops&lt;/a&gt; uses astUtils.canTokensBeAdjacent (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9907&quot;&gt;#9907&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9906&quot;&gt;#9906&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d20f6b4&quot;&gt;d20f6b4&lt;/a&gt; Fix: Typo in error message when running npm (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9866&quot;&gt;#9866&lt;/a&gt;) (Maciej Kasprzyk)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1aa1970&quot;&gt;1aa1970&lt;/a&gt; Docs: remove outdated rule naming convention (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9925&quot;&gt;#9925&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3afaff6&quot;&gt;3afaff6&lt;/a&gt; Docs: Add &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; variable reassignment example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9873&quot;&gt;#9873&lt;/a&gt;) (LePirlouit)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51ec6a7&quot;&gt;51ec6a7&lt;/a&gt; Docs: Use GitHub Multiple PR/Issue templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9911&quot;&gt;#9911&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/084351b&quot;&gt;084351b&lt;/a&gt; Docs: Fix the messageId example (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9889&quot;&gt;#9889&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9892&quot;&gt;#9892&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9cbb487&quot;&gt;9cbb487&lt;/a&gt; Docs: Mention the &lt;code&gt;globals&lt;/code&gt; key in the &lt;a href=&quot;https://eslint.org/docs/rules/no-undef&quot;&gt;no-undef&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9867&quot;&gt;#9867&lt;/a&gt;) (Dan Dascalescu)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb213dc&quot;&gt;bb213dc&lt;/a&gt; Chore: Use messageIds in some of the core rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9648&quot;&gt;#9648&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.16.0 released</title>
    <link href="https://eslint.org/blog/2018/01/eslint-v4.16.0-released/"/>
    <updated>2018-01-19T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/01/eslint-v4.16.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/comma-style&quot;&gt;&lt;code&gt;comma-style&lt;/code&gt;&lt;/a&gt; rule now supports a &lt;code&gt;NewExpression&lt;/code&gt; option.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;&lt;code&gt;valid-jsdoc&lt;/code&gt;&lt;/a&gt; rule can now be autofixed in some cases, and its error locations are more precise.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;allowMultiplePropertiesPerLine&lt;/code&gt; option in the &lt;a href=&quot;https://eslint.org/docs/rules/object-property-newline&quot;&gt;&lt;code&gt;object-property-newline&lt;/code&gt;&lt;/a&gt; rule has been renamed to &lt;code&gt;allowAllPropertiesOnSameLine&lt;/code&gt; to more clearly convey what the option does. &lt;code&gt;allowMultiplePropertiesPerLine&lt;/code&gt; still works, but has been deprecated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e26a25f&quot;&gt;e26a25f&lt;/a&gt; Update: allow continue instead of if wrap in &lt;a href=&quot;https://eslint.org/docs/rules/guard-for-in&quot;&gt;guard-for-in&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7567&quot;&gt;#7567&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9796&quot;&gt;#9796&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af043eb&quot;&gt;af043eb&lt;/a&gt; Update: Add NewExpression support to &lt;a href=&quot;https://eslint.org/docs/rules/comma-style&quot;&gt;comma-style&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9591&quot;&gt;#9591&lt;/a&gt;) (Frazer McLean)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d61930&quot;&gt;1d61930&lt;/a&gt; Update: use doctrine range information in &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;valid-jsdoc&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9831&quot;&gt;#9831&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/133336e&quot;&gt;133336e&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; behavior on template literal arguments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9061&quot;&gt;#9061&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9820&quot;&gt;#9820&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/add1e70&quot;&gt;add1e70&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; bug on comments in ternary expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9729&quot;&gt;#9729&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9818&quot;&gt;#9818&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2cf4522&quot;&gt;2cf4522&lt;/a&gt; Update: Rename and deprecate &lt;a href=&quot;https://eslint.org/docs/rules/object-property-newline&quot;&gt;object-property-newline&lt;/a&gt; option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9570&quot;&gt;#9570&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13bcf3c&quot;&gt;13bcf3c&lt;/a&gt; Fix: Removing &lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;curly&lt;/a&gt; &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;quotes&lt;/a&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/no-eq-null&quot;&gt;no-eq-null&lt;/a&gt; report message (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9852&quot;&gt;#9852&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea1b15d&quot;&gt;ea1b15d&lt;/a&gt; Fix: avoid crashing on malformed configuration comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9373&quot;&gt;#9373&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9819&quot;&gt;#9819&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a5cd32&quot;&gt;6a5cd32&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; error with computed properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9784&quot;&gt;#9784&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9817&quot;&gt;#9817&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b96fb31&quot;&gt;b96fb31&lt;/a&gt; Docs: configuration hierarchy for CLIEngine options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9526&quot;&gt;#9526&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9855&quot;&gt;#9855&lt;/a&gt;) (PiIsFour)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ccbdda&quot;&gt;8ccbdda&lt;/a&gt; Docs: Clarify that -c configs merge with &lt;code&gt;.eslintrc.*&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9535&quot;&gt;#9535&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9847&quot;&gt;#9847&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/978574f&quot;&gt;978574f&lt;/a&gt; Docs: Fix examples for &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;no-useless-escape&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9853&quot;&gt;#9853&lt;/a&gt;) (Toru Kobayashi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2e87ddd&quot;&gt;2e87ddd&lt;/a&gt; Docs: Sync messageId examples’ style with other examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9816&quot;&gt;#9816&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/601f851&quot;&gt;601f851&lt;/a&gt; Docs: Minor modification to code comments for clarity (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9821&quot;&gt;#9821&lt;/a&gt;) (rgovind92)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9da067&quot;&gt;b9da067&lt;/a&gt; Docs: fix misleading info about RuleTester column numbers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9830&quot;&gt;#9830&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acde640&quot;&gt;acde640&lt;/a&gt; Docs: Add ES 2018 to Configuring ESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9829&quot;&gt;#9829&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ccfce15&quot;&gt;ccfce15&lt;/a&gt; Docs: Minor tweaks to working with rules page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9824&quot;&gt;#9824&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54b329a&quot;&gt;54b329a&lt;/a&gt; Docs: fix substitution of {{ name }} (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9822&quot;&gt;#9822&lt;/a&gt;) (Andres Kalle)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f898c7&quot;&gt;4f898c7&lt;/a&gt; Build: Fix JSDoc syntax errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9813&quot;&gt;#9813&lt;/a&gt;) (Matija Marohnić)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd5681d&quot;&gt;cd5681d&lt;/a&gt; Chore: Deactivate consistent-docs-url in internal rules folder (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9815&quot;&gt;#9815&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.15.0 released</title>
    <link href="https://eslint.org/blog/2018/01/eslint-v4.15.0-released/"/>
    <updated>2018-01-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2018/01/eslint-v4.15.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;new-apis&quot; tabindex=&quot;-1&quot;&gt;New APIs&lt;/h3&gt;
&lt;p&gt;CLIEngine now has a &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#clienginegetrules&quot;&gt;&lt;code&gt;getRules()&lt;/code&gt; method&lt;/a&gt;. This is useful for integrations that need to look at rules’ metadata programmatically without knowing what rules might have been defined by plugins.&lt;/p&gt;
&lt;p&gt;Rules now support &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#messageids&quot;&gt;&lt;code&gt;messages&lt;/code&gt; metadata and &lt;code&gt;messageId&lt;/code&gt; report parameters&lt;/a&gt;, including full support in RuleTester. This lets rule developers use &lt;code&gt;messageId&lt;/code&gt;s in their rule tests and avoid needing to track report message changes in both the rule implementation and the corresponding test file. In addition, this is the first step towards core support for rule message localization.&lt;/p&gt;
&lt;h3 id=&quot;new-rule-options&quot; tabindex=&quot;-1&quot;&gt;New rule options&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; rule now has an &lt;code&gt;ignoreComments&lt;/code&gt; option. This allows users to opt out of indentation checks for comments if project style rules require that comments be indented in a different manner.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ab04b5&quot;&gt;6ab04b5&lt;/a&gt; New: Add context.report({ messageId }) (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6740&quot;&gt;#6740&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9165&quot;&gt;#9165&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/65f0176&quot;&gt;65f0176&lt;/a&gt; New: CLIEngine#getRules() (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6582&quot;&gt;#6582&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9782&quot;&gt;#9782&lt;/a&gt;) (Patrick McElhaney)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c64195f&quot;&gt;c64195f&lt;/a&gt; Update: More detailed assert message for rule-tester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9769&quot;&gt;#9769&lt;/a&gt;) (Weijia Wang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bbabf34&quot;&gt;bbabf34&lt;/a&gt; Update: add &lt;code&gt;ignoreComments&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9018&quot;&gt;#9018&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9752&quot;&gt;#9752&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9fcfabf&quot;&gt;9fcfabf&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; false positive (fixes: &lt;a href=&quot;https://github.com/eslint/eslint/issues/9755&quot;&gt;#9755&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9795&quot;&gt;#9795&lt;/a&gt;) (Erin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c87f42&quot;&gt;4c87f42&lt;/a&gt; Fix: incorrect error messages of &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9774&quot;&gt;#9774&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9791&quot;&gt;#9791&lt;/a&gt;) (akouryy)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc7f404&quot;&gt;fc7f404&lt;/a&gt; Docs: add url to each of the rules (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6582&quot;&gt;#6582&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9788&quot;&gt;#9788&lt;/a&gt;) (Patrick McElhaney)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc44da9&quot;&gt;fc44da9&lt;/a&gt; Docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;sort-imports&lt;/a&gt; rule block language (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9805&quot;&gt;#9805&lt;/a&gt;) (ferhat elmas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/61e5fa0&quot;&gt;61e5fa0&lt;/a&gt; Docs: Add table of contents to Node.js API docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9785&quot;&gt;#9785&lt;/a&gt;) (Patrick McElhaney)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db431cb&quot;&gt;db431cb&lt;/a&gt; Docs: HTTP -&amp;gt; HTTPS (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9768&quot;&gt;#9768&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9768&quot;&gt;#9768&lt;/a&gt;) (Ronald Eddy Jr)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cbf0fb9&quot;&gt;cbf0fb9&lt;/a&gt; Docs: describe how to feature-detect scopeManager/visitorKeys support (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9764&quot;&gt;#9764&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7dcb70&quot;&gt;f7dcb70&lt;/a&gt; Docs: Add note about “patch release pending” label to maintainer guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9763&quot;&gt;#9763&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.14.0 released</title>
    <link href="https://eslint.org/blog/2017/12/eslint-v4.14.0-released/"/>
    <updated>2017-12-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/12/eslint-v4.14.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Parsers can now provide custom scope analysis hooks to ESLint, which should allow for easier integration when parsing non-standard syntax. For more information see our &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-plugins#working-with-custom-parsers&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae51eb2&quot;&gt;ae51eb2&lt;/a&gt; New: Add allowImplicit option to &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8539&quot;&gt;#8539&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9344&quot;&gt;#9344&lt;/a&gt;) (James C. Davis)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/be2f57e&quot;&gt;be2f57e&lt;/a&gt; Update: support separate requires in &lt;a href=&quot;https://eslint.org/docs/rules/one-var&quot;&gt;one-var&lt;/a&gt;. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6175&quot;&gt;#6175&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9441&quot;&gt;#9441&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/75c7419&quot;&gt;75c7419&lt;/a&gt; Update: Logical-and is counted in &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;&lt;code&gt;complexity&lt;/code&gt;&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8535&quot;&gt;#8535&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9754&quot;&gt;#9754&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c2aafd&quot;&gt;1c2aafd&lt;/a&gt; Update: Improve parser integrations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8392&quot;&gt;#8392&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8755&quot;&gt;#8755&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/43d4ba8&quot;&gt;43d4ba8&lt;/a&gt; Fix: false positive on rule&lt;a href=&quot;https://eslint.org/docs/rules/lines-between-class-members&quot;&gt;&lt;code&gt;lines-between-class-members&lt;/code&gt;&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9665&quot;&gt;#9665&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9680&quot;&gt;#9680&lt;/a&gt;) (sakabar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/370d614&quot;&gt;370d614&lt;/a&gt; Docs: Fix typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9751&quot;&gt;#9751&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb4b1e0&quot;&gt;eb4b1e0&lt;/a&gt; Docs: reintroduce misspelling in &lt;a href=&quot;https://eslint.org/docs/rules/valid-typeof&quot;&gt;&lt;code&gt;valid-typeof&lt;/code&gt;&lt;/a&gt; example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9753&quot;&gt;#9753&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e9d5dfd&quot;&gt;e9d5dfd&lt;/a&gt; Docs: improve &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; formatting (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9747&quot;&gt;#9747&lt;/a&gt;) (Rich Trott)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f252c19&quot;&gt;f252c19&lt;/a&gt; Docs: Make the lint message &lt;code&gt;source&lt;/code&gt; property a little more subtle (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9735&quot;&gt;#9735&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a5c23c&quot;&gt;5a5c23c&lt;/a&gt; Docs: fix the link to contributing page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9727&quot;&gt;#9727&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f44ce11&quot;&gt;f44ce11&lt;/a&gt; Docs: change beginner to good first issue label text (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9726&quot;&gt;#9726&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f819920&quot;&gt;f819920&lt;/a&gt; Docs: fix typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9723&quot;&gt;#9723&lt;/a&gt;) (Thomas Broadley)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4ddc131&quot;&gt;4ddc131&lt;/a&gt; Upgrade: debug@^3.1.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9731&quot;&gt;#9731&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8196c45&quot;&gt;8196c45&lt;/a&gt; Chore: Reorganize CLI options and associated docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9758&quot;&gt;#9758&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/37d066c&quot;&gt;37d066c&lt;/a&gt; Chore: Add unit tests for overrides glob matching. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9744&quot;&gt;#9744&lt;/a&gt;) (Robert Jackson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/805a94e&quot;&gt;805a94e&lt;/a&gt; Chore: Fix typo in CLIEngine test name (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9741&quot;&gt;#9741&lt;/a&gt;) (@scriptdaemon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14baa2e&quot;&gt;14baa2e&lt;/a&gt; Chore: improve &lt;a href=&quot;https://eslint.org/docs/rules/arrow-body-style&quot;&gt;arrow-body-style&lt;/a&gt; error message (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5498&quot;&gt;#5498&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9718&quot;&gt;#9718&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.13.1 released</title>
    <link href="https://eslint.org/blog/2017/12/eslint-v4.13.1-released/"/>
    <updated>2017-12-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/12/eslint-v4.13.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b72dc83&quot;&gt;b72dc83&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/eol-last&quot;&gt;eol-last&lt;/a&gt; allow empty-string to always pass (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9534&quot;&gt;#9534&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9696&quot;&gt;#9696&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d80aa7c&quot;&gt;d80aa7c&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; destructure leading/trailing underscore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9700&quot;&gt;#9700&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9701&quot;&gt;#9701&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d49d9d0&quot;&gt;d49d9d0&lt;/a&gt; Docs: Add missing period to the README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9702&quot;&gt;#9702&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4564fe0&quot;&gt;4564fe0&lt;/a&gt; Chore: no-invalid-meta crash if no export assignment (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9534&quot;&gt;#9534&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9698&quot;&gt;#9698&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.13.0 released</title>
    <link href="https://eslint.org/blog/2017/12/eslint-v4.13.0-released/"/>
    <updated>2017-12-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/12/eslint-v4.13.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This release updates &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; rule to handle destructuring by default, which might result in more user-visible errors.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/256481b&quot;&gt;256481b&lt;/a&gt; Update: update handling of destructuring in &lt;a href=&quot;https://eslint.org/docs/rules/camelcase&quot;&gt;camelcase&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8511&quot;&gt;#8511&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9468&quot;&gt;#9468&lt;/a&gt;) (Erin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d067ae1&quot;&gt;d067ae1&lt;/a&gt; Docs: Don’t use undocumented array-style configuration for &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9690&quot;&gt;#9690&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cdb1488&quot;&gt;cdb1488&lt;/a&gt; Docs: Adds an example with try/catch. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9672&quot;&gt;#9672&lt;/a&gt;) (Jaap Taal)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ad3091&quot;&gt;1ad3091&lt;/a&gt; Chore: fix test-suite to work with node master (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9688&quot;&gt;#9688&lt;/a&gt;) (Myles Borins)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.12.1 released</title>
    <link href="https://eslint.org/blog/2017/11/eslint-v4.12.1-released/"/>
    <updated>2017-11-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/11/eslint-v4.12.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e362a0f8d97105c199fee3dfc277a03badb6c68&quot;&gt;1e362a0&lt;/a&gt; Revert “Fix: Use XML 1.1 on XML formatters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9607&quot;&gt;#9607&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/pull/9608&quot;&gt;#9608&lt;/a&gt;)” (&lt;a href=&quot;https://github.com/eslint/eslint/pull/9667&quot;&gt;#9667&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.12.0 released</title>
    <link href="https://eslint.org/blog/2017/11/eslint-v4.12.0-released/"/>
    <updated>2017-11-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/11/eslint-v4.12.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;We’ve added 1 new rule with this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/implicit-arrow-linebreak&quot;&gt;implicit-arrow-linebreak&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;autofixable-rules&quot; tabindex=&quot;-1&quot;&gt;Autofixable Rules&lt;/h3&gt;
&lt;p&gt;We’ve added autofix capabilities to one rule: &lt;a href=&quot;https://eslint.org/docs/rules/sort-vars&quot;&gt;&lt;code&gt;sort-vars&lt;/code&gt;&lt;/a&gt;. At present, it will only sort variables with no initial value or a literal initial value, in order to avoid potentially changing the order of function calls.&lt;/p&gt;
&lt;h3 id=&quot;new-node.js-apis&quot; tabindex=&quot;-1&quot;&gt;New Node.js APIs&lt;/h3&gt;
&lt;p&gt;We’ve added a new Node.js API:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#linterdefineparser&quot;&gt;&lt;code&gt;Linter.defineParser&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This API is useful when you are working with an instance of &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#linter&quot;&gt;&lt;code&gt;Linter&lt;/code&gt;&lt;/a&gt; and need to define a custom parser at runtime.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28c9c8e&quot;&gt;28c9c8e&lt;/a&gt; New: add a Linter#defineParser function (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9321&quot;&gt;#9321&lt;/a&gt;) (Ives van Hoorne)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4118f14&quot;&gt;4118f14&lt;/a&gt; New: Adds &lt;a href=&quot;https://eslint.org/docs/rules/implicit-arrow-linebreak&quot;&gt;implicit-arrow-linebreak&lt;/a&gt; rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9510&quot;&gt;#9510&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9629&quot;&gt;#9629&lt;/a&gt;) (Sharmila Jesupaul)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5619910&quot;&gt;5619910&lt;/a&gt; Update: Add autofix for &lt;a href=&quot;https://eslint.org/docs/rules/sort-vars&quot;&gt;&lt;code&gt;sort-vars&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9496&quot;&gt;#9496&lt;/a&gt;) (Trevin Hofmann)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71eedbf&quot;&gt;71eedbf&lt;/a&gt; Update: add &lt;code&gt;beforeStatementContinuationChars&lt;/code&gt; to &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;semi&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9521&quot;&gt;#9521&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9594&quot;&gt;#9594&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0cf081e&quot;&gt;0cf081e&lt;/a&gt; Update: add importNames option to &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;no-restricted-imports&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9506&quot;&gt;#9506&lt;/a&gt;) (Benjamin R Gibson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/208fb0f&quot;&gt;208fb0f&lt;/a&gt; Fix: Use XML 1.1 on XML formatters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9607&quot;&gt;#9607&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9608&quot;&gt;#9608&lt;/a&gt;) (Daniel Reigada)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e13d439&quot;&gt;e13d439&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/space-in-parens&quot;&gt;space-in-parens&lt;/a&gt; crash (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9655&quot;&gt;#9655&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a015234&quot;&gt;a015234&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; false positive on “super” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9625&quot;&gt;#9625&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9626&quot;&gt;#9626&lt;/a&gt;) (Kei Ito)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/92171cc&quot;&gt;92171cc&lt;/a&gt; Docs: Updating migration guide for single-line disable (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9385&quot;&gt;#9385&lt;/a&gt;) (Justin Helmer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f39ffe7&quot;&gt;f39ffe7&lt;/a&gt; Docs: remove extra punctuation from readme (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9640&quot;&gt;#9640&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/332c214&quot;&gt;332c214&lt;/a&gt; Docs: Add @platinumazure to TSC (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9618&quot;&gt;#9618&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/76dab18&quot;&gt;76dab18&lt;/a&gt; Upgrade: doctrine@^2.0.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9656&quot;&gt;#9656&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e04f14&quot;&gt;6e04f14&lt;/a&gt; Upgrade: &lt;code&gt;globals&lt;/code&gt; to 11.0.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9614&quot;&gt;#9614&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9632&quot;&gt;#9632&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.11.0 released</title>
    <link href="https://eslint.org/blog/2017/11/eslint-v4.11.0-released/"/>
    <updated>2017-11-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/11/eslint-v4.11.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;npm installed formatters can now be specified with or without the package name’s &lt;code&gt;eslint-formatter-&lt;/code&gt; prefix. Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm install eslint-formatter-pretty

eslint -f pretty file.js

// equivalent:
eslint -f eslint-formatter-pretty file.js
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d7d7ab&quot;&gt;4d7d7ab&lt;/a&gt; Update: Resolve npm installed formatters (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5900&quot;&gt;#5900&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9464&quot;&gt;#9464&lt;/a&gt;) (Tom Erik Støwer)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7e3bf6a&quot;&gt;7e3bf6a&lt;/a&gt; Fix: edge-cases of &lt;a href=&quot;https://eslint.org/docs/rules/semi-style&quot;&gt;semi-style&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9560&quot;&gt;#9560&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5a37ce&quot;&gt;e5a37ce&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; for flow code (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9458&quot;&gt;#9458&lt;/a&gt;) (Tiddo Langerak)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7c5b19&quot;&gt;b7c5b19&lt;/a&gt; Fix: Correct [object Object] output of error.data. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9561&quot;&gt;#9561&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/accc490&quot;&gt;accc490&lt;/a&gt; Fix: Files with no failures get “passing” testcase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9547&quot;&gt;#9547&lt;/a&gt;) (Samuel Levy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9606a3&quot;&gt;a9606a3&lt;/a&gt; Fix: invalid tests with super (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9539&quot;&gt;#9539&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9545&quot;&gt;#9545&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d4557a6&quot;&gt;d4557a6&lt;/a&gt; Docs: disallow use of the comma operator using &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;no-restricted-syntax&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9585&quot;&gt;#9585&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6672fae&quot;&gt;6672fae&lt;/a&gt; Docs: Fixed a typo on &lt;a href=&quot;https://eslint.org/docs/rules/lines-between-class-members&quot;&gt;lines-between-class-members&lt;/a&gt; doc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9603&quot;&gt;#9603&lt;/a&gt;) (Moinul Hossain)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2542f04&quot;&gt;2542f04&lt;/a&gt; Docs: Add missing options for &lt;a href=&quot;https://eslint.org/docs/rules/lines-around-comment&quot;&gt;&lt;code&gt;lines-around-comment&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9589&quot;&gt;#9589&lt;/a&gt;) (Clément Fiorio)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51c8cf0&quot;&gt;51c8cf0&lt;/a&gt; Docs: Disambiguate definition of Update tag (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9584&quot;&gt;#9584&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afc3c75&quot;&gt;afc3c75&lt;/a&gt; Docs: clarify what eslint-config-eslint is (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9582&quot;&gt;#9582&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aedae9d&quot;&gt;aedae9d&lt;/a&gt; Docs: fix spelling in &lt;a href=&quot;https://eslint.org/docs/rules/valid-typeof&quot;&gt;valid-typeof&lt;/a&gt; example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9574&quot;&gt;#9574&lt;/a&gt;) (Maksim Degtyarev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c5aaf3&quot;&gt;4c5aaf3&lt;/a&gt; Docs: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle&quot;&gt;no-underscore-dangle&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9567&quot;&gt;#9567&lt;/a&gt;) (Fabien Lucas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab0f66d&quot;&gt;ab0f66d&lt;/a&gt; Docs: Add examples to better show rule coverage. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9548&quot;&gt;#9548&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acccfbd&quot;&gt;acccfbd&lt;/a&gt; Docs: Minor rephrase in &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-this&quot;&gt;&lt;code&gt;no-invalid-this&lt;/code&gt;&lt;/a&gt;. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9542&quot;&gt;#9542&lt;/a&gt;) (Francisc)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f9c0fe&quot;&gt;8f9c0fe&lt;/a&gt; Docs: improve &lt;a href=&quot;https://eslint.org/docs/rules/id-match&quot;&gt;id-match&lt;/a&gt; usage advice (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9544&quot;&gt;#9544&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/06b491e&quot;&gt;06b491e&lt;/a&gt; Docs: fix duplicate entries in changelog (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9530&quot;&gt;#9530&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9cf4ebe&quot;&gt;9cf4ebe&lt;/a&gt; Docs: add .md to link(for github users) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9529&quot;&gt;#9529&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d602f9e&quot;&gt;d602f9e&lt;/a&gt; Upgrade: espree v3.5.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9611&quot;&gt;#9611&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc2c7c9&quot;&gt;cc2c7c9&lt;/a&gt; Build: use Node 8 in appveyor (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9595&quot;&gt;#9595&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b6a7490&quot;&gt;b6a7490&lt;/a&gt; Build: ensure fuzzer tests get run with &lt;code&gt;npm test&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9590&quot;&gt;#9590&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1073bc5&quot;&gt;1073bc5&lt;/a&gt; Build: remove shelljs-nodecli (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9533&quot;&gt;#9533&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9588&quot;&gt;#9588&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f37b1c&quot;&gt;7f37b1c&lt;/a&gt; Build: test Node 9 on Travis (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9556&quot;&gt;#9556&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4def876&quot;&gt;4def876&lt;/a&gt; Chore: avoid handling rules instances in config-validator (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9364&quot;&gt;#9364&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe5ac7e&quot;&gt;fe5ac7e&lt;/a&gt; Chore: fix incorrect comment in safe-emitter.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9605&quot;&gt;#9605&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/980ecd3&quot;&gt;980ecd3&lt;/a&gt; Chore: Update copyright and license info (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9599&quot;&gt;#9599&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9064b9c&quot;&gt;9064b9c&lt;/a&gt; Chore: add equalTokens in ast-utils. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9500&quot;&gt;#9500&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3623600&quot;&gt;3623600&lt;/a&gt; Chore: upgrade ajv@5.3.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9557&quot;&gt;#9557&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b606cd&quot;&gt;1b606cd&lt;/a&gt; Chore: Remove an indirect dependency on jsonify (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9444&quot;&gt;#9444&lt;/a&gt;) (Rouven Weßling)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88d2303&quot;&gt;88d2303&lt;/a&gt; Chore: Add &lt;a href=&quot;https://eslint.org/docs/rules/object-property-newline&quot;&gt;object-property-newline&lt;/a&gt; tests to increase coverage. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9553&quot;&gt;#9553&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e1a095&quot;&gt;8e1a095&lt;/a&gt; Chore: enable a modified version of &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; on codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9452&quot;&gt;#9452&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb60285&quot;&gt;cb60285&lt;/a&gt; Chore: remove commented test for HTML formatter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9532&quot;&gt;#9532&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2224733&quot;&gt;2224733&lt;/a&gt; Chore: use eslint-plugin-rulesdir instead of --rulesdir for self-linting (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9164&quot;&gt;#9164&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.10.0 released</title>
    <link href="https://eslint.org/blog/2017/10/eslint-v4.10.0-released/"/>
    <updated>2017-10-27T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/10/eslint-v4.10.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebb530d&quot;&gt;ebb530d&lt;/a&gt; Update: Don’t ignore comments (&lt;a href=&quot;https://eslint.org/docs/rules/no-trailing-spaces&quot;&gt;no-trailing-spaces&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9416&quot;&gt;#9416&lt;/a&gt;) (Chris van Marle)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb6e60a&quot;&gt;bb6e60a&lt;/a&gt; Fix: Improve the doc for &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-modules&quot;&gt;no-restricted-modules&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9437&quot;&gt;#9437&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9495&quot;&gt;#9495&lt;/a&gt;) (vibss2397)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d80b9d0&quot;&gt;d80b9d0&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-var&quot;&gt;no-var&lt;/a&gt; don’t fix globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9520&quot;&gt;#9520&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9525&quot;&gt;#9525&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8aa071&quot;&gt;b8aa071&lt;/a&gt; Fix: allow linting the empty string from stdin (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9515&quot;&gt;#9515&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9517&quot;&gt;#9517&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2fa64b7&quot;&gt;2fa64b7&lt;/a&gt; Fix: should not convert non-consecutive line comments to a single blo… (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9475&quot;&gt;#9475&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9725146&quot;&gt;9725146&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; fix produces invalid code (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9461&quot;&gt;#9461&lt;/a&gt;). (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9463&quot;&gt;#9463&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b12cff8&quot;&gt;b12cff8&lt;/a&gt; Fix: Expected order of jsdoc tags (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9412&quot;&gt;#9412&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9451&quot;&gt;#9451&lt;/a&gt;) (Orlando Wenzinger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8768b2d&quot;&gt;8768b2d&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; autofixer added trailing space (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9454&quot;&gt;#9454&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e830aa1&quot;&gt;e830aa1&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; reports block comments followed by code (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9450&quot;&gt;#9450&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb8cfb1&quot;&gt;eb8cfb1&lt;/a&gt; Fix: change err report in constant condition (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9398&quot;&gt;#9398&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9436&quot;&gt;#9436&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c529de9&quot;&gt;c529de9&lt;/a&gt; Docs: Amend rule document to correct and complete it (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6251&quot;&gt;#6251&lt;/a&gt;). (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9498&quot;&gt;#9498&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d390b2&quot;&gt;7d390b2&lt;/a&gt; Docs: Revise contributor documentation on issue labels. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9469&quot;&gt;#9469&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/720b6d5&quot;&gt;720b6d5&lt;/a&gt; Docs: Update ISSUE_TEMPLATE.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9504&quot;&gt;#9504&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f054ab5&quot;&gt;f054ab5&lt;/a&gt; Docs: add &lt;code&gt;.md&lt;/code&gt; to link (for github users) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9501&quot;&gt;#9501&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ed9cfc&quot;&gt;5ed9cfc&lt;/a&gt; Docs: Correct violations of “Variable Declarations” in Code Conventions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9447&quot;&gt;#9447&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3171097&quot;&gt;3171097&lt;/a&gt; Docs: Clears confusion on usage of global and local plugins.(&lt;a href=&quot;https://github.com/eslint/eslint/issues/9492&quot;&gt;#9492&lt;/a&gt;) (Vasili Sviridov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f71fef&quot;&gt;0f71fef&lt;/a&gt; Docs: Unquote booleans in &lt;a href=&quot;https://eslint.org/docs/rules/lines-between-class-members&quot;&gt;lines-between-class-members&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9497&quot;&gt;#9497&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3d7532&quot;&gt;b3d7532&lt;/a&gt; Docs: use consistent terminology &amp;amp; fix link etc. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9490&quot;&gt;#9490&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87db8ae&quot;&gt;87db8ae&lt;/a&gt; Docs: Fix broken links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9488&quot;&gt;#9488&lt;/a&gt;) (gpiress)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51bdb2f&quot;&gt;51bdb2f&lt;/a&gt; Docs: Incorrect link to related rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9477&quot;&gt;#9477&lt;/a&gt;) (Gavin King)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a962e8&quot;&gt;1a962e8&lt;/a&gt; Docs: Add FAQ for when ESLint cannot find plugin (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9467&quot;&gt;#9467&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b12e5fe&quot;&gt;b12e5fe&lt;/a&gt; Docs: Repair broken links and add migration links. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9473&quot;&gt;#9473&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eca01ed&quot;&gt;eca01ed&lt;/a&gt; Docs: Add missing info about special status of home-dir config files. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9472&quot;&gt;#9472&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/47e5f6f&quot;&gt;47e5f6f&lt;/a&gt; Docs: ensure “good commit message” examples actually follow guidelines (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9466&quot;&gt;#9466&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ecac0fd&quot;&gt;ecac0fd&lt;/a&gt; Docs: Remove blockBindings references (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9446&quot;&gt;#9446&lt;/a&gt;) (Jan Pilzer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/052c504&quot;&gt;052c504&lt;/a&gt; Docs: suggest deleting branches after merging PRs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9449&quot;&gt;#9449&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7521e3&quot;&gt;a7521e3&lt;/a&gt; Docs: improve examples for &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9440&quot;&gt;#9440&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5012661&quot;&gt;5012661&lt;/a&gt; Build: fix &lt;code&gt;npm run profile&lt;/code&gt; script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9397&quot;&gt;#9397&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9455&quot;&gt;#9455&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b6f31a9&quot;&gt;b6f31a9&lt;/a&gt; Build: changelog update for 4.9.0 (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9c6673&quot;&gt;f9c6673&lt;/a&gt; Chore: Add tests to cover array and object values and leading commas. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9502&quot;&gt;#9502&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9169258&quot;&gt;9169258&lt;/a&gt; Chore: remove &lt;code&gt;npm run check-commit&lt;/code&gt; script (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9513&quot;&gt;#9513&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/350a72c&quot;&gt;350a72c&lt;/a&gt; Chore: regex.test =&amp;gt; string.startsWith (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9518&quot;&gt;#9518&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de0bef4&quot;&gt;de0bef4&lt;/a&gt; Chore: remove obsolete eslintbot templates (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9512&quot;&gt;#9512&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3204773&quot;&gt;3204773&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt;. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9414&quot;&gt;#9414&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da77eb4&quot;&gt;da77eb4&lt;/a&gt; Chore: Revise no-config-file test to prevent false failure. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9443&quot;&gt;#9443&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b89865&quot;&gt;0b89865&lt;/a&gt; Chore: ensure tests for internal rules get run (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9453&quot;&gt;#9453&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b31e55a&quot;&gt;b31e55a&lt;/a&gt; Chore: move internal rules out of lib/ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9448&quot;&gt;#9448&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.9.0 released</title>
    <link href="https://eslint.org/blog/2017/10/eslint-v4.9.0-released/"/>
    <updated>2017-10-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/10/eslint-v4.9.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;We’ve added 2 new rules with this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/lines-between-class-members&quot;&gt;lines-between-class-members&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We also added new CLI option &lt;a href=&quot;https://eslint.org/docs/user-guide/command-line-interface#--fix-dry-run&quot;&gt;&lt;code&gt;--fix-dry-run&lt;/code&gt;&lt;/a&gt;. This option will allow you to apply fixes without writing them to the disk.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8eb4aae&quot;&gt;8eb4aae&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/multiline-comment-style&quot;&gt;multiline-comment-style&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8320&quot;&gt;#8320&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9389&quot;&gt;#9389&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee99876&quot;&gt;ee99876&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/lines-between-class-members&quot;&gt;lines-between-class-members&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5949&quot;&gt;#5949&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9141&quot;&gt;#9141&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4567ab1&quot;&gt;4567ab1&lt;/a&gt; New: Add the fix-dry-run flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9076&quot;&gt;#9076&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9073&quot;&gt;#9073&lt;/a&gt;) (Rafał Ruciński)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2247efa&quot;&gt;2247efa&lt;/a&gt; Update: Add FunctionExpression to &lt;a href=&quot;https://eslint.org/docs/rules/require-jsdoc&quot;&gt;require-jsdoc&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5867&quot;&gt;#5867&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9395&quot;&gt;#9395&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b02fbb6&quot;&gt;b02fbb6&lt;/a&gt; Update: custom messages for no-restricted-* (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/8400&quot;&gt;#8400&lt;/a&gt;) (Maja Wichrowska)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6767857&quot;&gt;6767857&lt;/a&gt; Update: fix ignored nodes in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule when using tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9392&quot;&gt;#9392&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9393&quot;&gt;#9393&lt;/a&gt;) (Robin Houston)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/786cc73&quot;&gt;786cc73&lt;/a&gt; Update: Add “consistent” option to &lt;a href=&quot;https://eslint.org/docs/rules/array-bracket-newline&quot;&gt;array-bracket-newline&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9136&quot;&gt;#9136&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9206&quot;&gt;#9206&lt;/a&gt;) (Ethan Rutherford)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1167638&quot;&gt;1167638&lt;/a&gt; Update: add allowElseIf option to &lt;a href=&quot;https://eslint.org/docs/rules/no-else-return&quot;&gt;no-else-return&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9228&quot;&gt;#9228&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9229&quot;&gt;#9229&lt;/a&gt;) (Thomas Grainger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62a323c&quot;&gt;62a323c&lt;/a&gt; Fix: Add class options for &lt;a href=&quot;https://eslint.org/docs/rules/lines-around-comment&quot;&gt;&lt;code&gt;lines-around-comment&lt;/code&gt;&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8564&quot;&gt;#8564&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8565&quot;&gt;#8565&lt;/a&gt;) (Ed Lee)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85388fb&quot;&gt;85388fb&lt;/a&gt; Fix: Correct error and test messages to fit config search path (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9428&quot;&gt;#9428&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8da525f&quot;&gt;8da525f&lt;/a&gt; Fix: recognise multiline comments as multiline arrays (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9211&quot;&gt;#9211&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9369&quot;&gt;#9369&lt;/a&gt;) (Phil Quinn)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6791d18&quot;&gt;6791d18&lt;/a&gt; Docs: Corrected noun to verb. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9438&quot;&gt;#9438&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02732bd&quot;&gt;02732bd&lt;/a&gt; Docs: Reorganized to avoid misunderstandings. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9434&quot;&gt;#9434&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d9466b8&quot;&gt;d9466b8&lt;/a&gt; Docs: Correct time forecast for tests. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9432&quot;&gt;#9432&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7ed84f&quot;&gt;f7ed84f&lt;/a&gt; Docs: Add instruction re home-directory config files (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7729&quot;&gt;#7729&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9426&quot;&gt;#9426&lt;/a&gt;) (Jonathan Pool)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d8a303&quot;&gt;2d8a303&lt;/a&gt; Docs: fix examples for &lt;a href=&quot;https://eslint.org/docs/rules/prefer-numeric-literals&quot;&gt;prefer-numeric-literals&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9155&quot;&gt;#9155&lt;/a&gt;) (Lutz Lengemann)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d7610f5&quot;&gt;d7610f5&lt;/a&gt; Docs: Add jquery warning to &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9409&quot;&gt;#9409&lt;/a&gt;) (Thomas Grainger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e835dd1&quot;&gt;e835dd1&lt;/a&gt; Docs: clarify &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-operators&quot;&gt;no-mixed-operators&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8051&quot;&gt;#8051&lt;/a&gt;) (Ruxandra Fediuc)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51360c8&quot;&gt;51360c8&lt;/a&gt; Docs: update &lt;a href=&quot;https://eslint.org/docs/rules/block-spacing&quot;&gt;block-spacing&lt;/a&gt; details (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8743&quot;&gt;#8743&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9375&quot;&gt;#9375&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7654c99&quot;&gt;7654c99&lt;/a&gt; Docs: add installing prerequisites in readme. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9401&quot;&gt;#9401&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e171f6b&quot;&gt;e171f6b&lt;/a&gt; Docs: add installing prerequisites. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9394&quot;&gt;#9394&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74dfc87&quot;&gt;74dfc87&lt;/a&gt; Docs: update doc for &lt;a href=&quot;https://eslint.org/docs/rules/class-methods-use-this&quot;&gt;class-methods-use-this&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8910&quot;&gt;#8910&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9374&quot;&gt;#9374&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4a9dbf&quot;&gt;b4a9dbf&lt;/a&gt; Docs: show console call with &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;no-restricted-syntax&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7806&quot;&gt;#7806&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9376&quot;&gt;#9376&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/db41408&quot;&gt;db41408&lt;/a&gt; Chore: avoid applying eslint-env comments twice (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9278&quot;&gt;#9278&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/febb897&quot;&gt;febb897&lt;/a&gt; Chore: avoid loose equality assertions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9415&quot;&gt;#9415&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/30d018b&quot;&gt;30d018b&lt;/a&gt; Chore: Add Aladdin-ADD &amp;amp; VictorHom to README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9424&quot;&gt;#9424&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/37dde77&quot;&gt;37dde77&lt;/a&gt; Chore: Refactor SourceCode#getJSDocComment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9403&quot;&gt;#9403&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9fedd51&quot;&gt;9fedd51&lt;/a&gt; Chore: Add missing space in blog post template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9407&quot;&gt;#9407&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c581b77&quot;&gt;c581b77&lt;/a&gt; Chore: Error =&amp;gt; TypeError (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9390&quot;&gt;#9390&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9d3f5ad&quot;&gt;9d3f5ad&lt;/a&gt; Chore: report unused eslint-disable directives in ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9371&quot;&gt;#9371&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.8.0 released</title>
    <link href="https://eslint.org/blog/2017/09/eslint-v4.8.0-released/"/>
    <updated>2017-09-29T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/09/eslint-v4.8.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;%E2%80%93report-unused-disable-directives&quot; tabindex=&quot;-1&quot;&gt;–report-unused-disable-directives&lt;/h3&gt;
&lt;p&gt;This release includes a new CLI option that, when on, reports unused &lt;code&gt;eslint-disable&lt;/code&gt; directives! Running this periodically will ensure that all &lt;code&gt;eslint-disable&lt;/code&gt; comments are still relevant and up to date.&lt;/p&gt;
&lt;p&gt;Please see the &lt;a href=&quot;https://eslint.org/docs/user-guide/command-line-interface#--report-unused-disable-directives&quot;&gt;documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3f2b908&quot;&gt;3f2b908&lt;/a&gt; New: add option to report unused eslint-disable directives (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9249&quot;&gt;#9249&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9250&quot;&gt;#9250&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff2be59&quot;&gt;ff2be59&lt;/a&gt; Fix: dot notation rule failing to catch string template (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9350&quot;&gt;#9350&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9357&quot;&gt;#9357&lt;/a&gt;) (Phil Quinn)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/06efe87&quot;&gt;06efe87&lt;/a&gt; Fix: Add meta element with charset attribute. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9365&quot;&gt;#9365&lt;/a&gt;) (H1Gdev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c6bc67&quot;&gt;1c6bc67&lt;/a&gt; Fix: special EventEmitter keys leak information about other rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9328&quot;&gt;#9328&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38d0cb2&quot;&gt;38d0cb2&lt;/a&gt; Fix: fix wrong code-path about try-for-in (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8848&quot;&gt;#8848&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9348&quot;&gt;#9348&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/434d9e2&quot;&gt;434d9e2&lt;/a&gt; Fix: Invalid font-size property value issue. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9341&quot;&gt;#9341&lt;/a&gt;) (H1Gdev)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cef6f8c&quot;&gt;cef6f8c&lt;/a&gt; Docs: remove line about removing rules from semver policy (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9367&quot;&gt;#9367&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/458ca67&quot;&gt;458ca67&lt;/a&gt; Docs: update architecture page (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9337&quot;&gt;#9337&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9345&quot;&gt;#9345&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d593e61&quot;&gt;d593e61&lt;/a&gt; Docs: update &lt;a href=&quot;http://eslint.org/&quot;&gt;eslint.org&lt;/a&gt; links to use https (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9358&quot;&gt;#9358&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1372da&quot;&gt;b1372da&lt;/a&gt; Chore: remove sourceCode property from Linter (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9363&quot;&gt;#9363&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7668c2&quot;&gt;a7668c2&lt;/a&gt; Chore: Remove unnecessary slice from logging utility (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9343&quot;&gt;#9343&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ff6fb6&quot;&gt;2ff6fb6&lt;/a&gt; Chore: remove unused arguments in codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9340&quot;&gt;#9340&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.7.2 released</title>
    <link href="https://eslint.org/blog/2017/09/eslint-v4.7.2-released/"/>
    <updated>2017-09-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/09/eslint-v4.7.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f87732&quot;&gt;4f87732&lt;/a&gt; Fix: Revert setting node.parent early (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9331&quot;&gt;#9331&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9336&quot;&gt;#9336&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.7.1 released</title>
    <link href="https://eslint.org/blog/2017/09/eslint-v4.7.1-released/"/>
    <updated>2017-09-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/09/eslint-v4.7.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/08656db&quot;&gt;08656db&lt;/a&gt; Fix: Handle nested disable directive correctly (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9318&quot;&gt;#9318&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9322&quot;&gt;#9322&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.7.0 released</title>
    <link href="https://eslint.org/blog/2017/09/eslint-v4.7.0-released/"/>
    <updated>2017-09-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/09/eslint-v4.7.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/newline-per-chained-call&quot;&gt;newline-per-chained-call&lt;/a&gt; supports autofix.&lt;/li&gt;
&lt;li&gt;Processor plugins can now autofix code.
To support autofix in processor plugins, developers can signal support by setting &lt;code&gt;supportsAutofix: true&lt;/code&gt; and update the &lt;code&gt;postprocess&lt;/code&gt; method to transform &lt;code&gt;fix&lt;/code&gt; ranges in reported problems.
This is explained fully in the &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-plugins#processors-in-plugins&quot;&gt;Processors documentation&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1488b51&quot;&gt;1488b51&lt;/a&gt; Update: run rules after &lt;code&gt;node.parent&lt;/code&gt; is already set (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9122&quot;&gt;#9122&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9283&quot;&gt;#9283&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce1f084&quot;&gt;ce1f084&lt;/a&gt; Update: fix MemberExpression handling in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9156&quot;&gt;#9156&lt;/a&gt;) (jackyho112)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c720a3&quot;&gt;0c720a3&lt;/a&gt; Update: allow autofixing when using processors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7510&quot;&gt;#7510&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9090&quot;&gt;#9090&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f12def6&quot;&gt;f12def6&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; flatTernary option to handle &lt;code&gt;return&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9285&quot;&gt;#9285&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9296&quot;&gt;#9296&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2731f94&quot;&gt;2731f94&lt;/a&gt; Update: make &lt;a href=&quot;https://eslint.org/docs/rules/newline-per-chained-call&quot;&gt;newline-per-chained-call&lt;/a&gt; fixable (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9149&quot;&gt;#9149&lt;/a&gt;) (João Granado)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a32ec36&quot;&gt;a32ec36&lt;/a&gt; Update: refactor eslint-disable comment processing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9216&quot;&gt;#9216&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e220687&quot;&gt;e220687&lt;/a&gt; Fix: remove autofix for var undef inits (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9231&quot;&gt;#9231&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9288&quot;&gt;#9288&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7685fed&quot;&gt;7685fed&lt;/a&gt; Fix: IIFE and arrow functions in &lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-this&quot;&gt;no-invalid-this&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9126&quot;&gt;#9126&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9258&quot;&gt;#9258&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/981f933&quot;&gt;981f933&lt;/a&gt; Fix: reuse the AST of source code object in verify (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9256&quot;&gt;#9256&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51132d6&quot;&gt;51132d6&lt;/a&gt; Fix: Formatters keep trailing ‘.’ if preceded by a space (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9154&quot;&gt;#9154&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9247&quot;&gt;#9247&lt;/a&gt;) (i-ron-y)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ba46e6&quot;&gt;7ba46e6&lt;/a&gt; Fix: shebang error in eslint-disable-new-line; add tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9238&quot;&gt;#9238&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9240&quot;&gt;#9240&lt;/a&gt;) (i-ron-y)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4431d68&quot;&gt;4431d68&lt;/a&gt; Docs: fix wrong config in &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt; example. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9309&quot;&gt;#9309&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d24dde&quot;&gt;7d24dde&lt;/a&gt; Docs: Fix code snippet to refer to the correct option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9313&quot;&gt;#9313&lt;/a&gt;) (Ruben Tytgat)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/002e199&quot;&gt;002e199&lt;/a&gt; Docs: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-globals&quot;&gt;no-restricted-globals&lt;/a&gt; wrong config. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9305&quot;&gt;#9305&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fcfe91a&quot;&gt;fcfe91a&lt;/a&gt; Docs: fix wrong config in &lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;id-length&lt;/a&gt; example. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9303&quot;&gt;#9303&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd698ba&quot;&gt;cd698ba&lt;/a&gt; Docs: move RuleTester documentation to Node.js API page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9273&quot;&gt;#9273&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4ae7ad3&quot;&gt;4ae7ad3&lt;/a&gt; Docs: fix inaccuracy in &lt;code&gt;npm run perf&lt;/code&gt; description (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9274&quot;&gt;#9274&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cad45bd&quot;&gt;cad45bd&lt;/a&gt; Docs: improve documentation for rule contexts (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9272&quot;&gt;#9272&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c3231b3&quot;&gt;c3231b3&lt;/a&gt; Docs: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/array-bracket-newline&quot;&gt;array-bracket-newline&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9269&quot;&gt;#9269&lt;/a&gt;) (宋文强)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82d8b73&quot;&gt;82d8b73&lt;/a&gt; Docs: Fix error in example code for &lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;sort-imports&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8734&quot;&gt;#8734&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9245&quot;&gt;#9245&lt;/a&gt;) (i-ron-y)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5566e94&quot;&gt;5566e94&lt;/a&gt; Docs: Replace misleading CLA links (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9133&quot;&gt;#9133&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9232&quot;&gt;#9232&lt;/a&gt;) (i-ron-y)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/787b78b&quot;&gt;787b78b&lt;/a&gt; Upgrade: Espree v3.5.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9153&quot;&gt;#9153&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9314&quot;&gt;#9314&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/abc8634&quot;&gt;abc8634&lt;/a&gt; Build: re-run browserify when generating site (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9275&quot;&gt;#9275&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/838df76&quot;&gt;838df76&lt;/a&gt; Chore: upgrade deps. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9289&quot;&gt;#9289&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/61f1093&quot;&gt;61f1093&lt;/a&gt; Chore: avoid monkeypatching Linter instances in RuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9276&quot;&gt;#9276&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28929cb&quot;&gt;28929cb&lt;/a&gt; Chore: remove Linter#reset (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9268&quot;&gt;#9268&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b1eba2&quot;&gt;2b1eba2&lt;/a&gt; Chore: enable eslint-plugin/no-deprecated-context-methods (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9279&quot;&gt;#9279&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3b0c6fd&quot;&gt;3b0c6fd&lt;/a&gt; Chore: remove extraneous linter properties (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9267&quot;&gt;#9267&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88d5d4d&quot;&gt;88d5d4d&lt;/a&gt; Chore: remove undocumented Linter#markVariableAsUsed method (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9266&quot;&gt;#9266&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/09414cf&quot;&gt;09414cf&lt;/a&gt; Chore: remove internal Linter#getDeclaredVariables method (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9264&quot;&gt;#9264&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f31f59d&quot;&gt;f31f59d&lt;/a&gt; Chore: prefer smaller scope for variables in codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9265&quot;&gt;#9265&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3693e4e&quot;&gt;3693e4e&lt;/a&gt; Chore: remove undocumented Linter#getScope method (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9253&quot;&gt;#9253&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d7eb81&quot;&gt;5d7eb81&lt;/a&gt; Chore: refactor config hash caching in CLIEngine (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9260&quot;&gt;#9260&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a76c4d&quot;&gt;1a76c4d&lt;/a&gt; Chore: remove SourceCode passthroughs from Linter.prototype (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9263&quot;&gt;#9263&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/40ae27b&quot;&gt;40ae27b&lt;/a&gt; Chore: avoid relying on Linter#getScope/markVariableAsUsed in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9252&quot;&gt;#9252&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b383d81&quot;&gt;b383d81&lt;/a&gt; Chore: make executeOnFile a pure function in CLIEngine (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9262&quot;&gt;#9262&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e0e579&quot;&gt;5e0e579&lt;/a&gt; Chore: avoid internal SourceCode methods in Linter tests (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9223&quot;&gt;#9223&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/adab827&quot;&gt;adab827&lt;/a&gt; Chore: remove unused eslint-disable comment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9251&quot;&gt;#9251&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/31e4ec8&quot;&gt;31e4ec8&lt;/a&gt; Chore: use consistent names for apply-disable-directives in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9246&quot;&gt;#9246&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f6546c&quot;&gt;8f6546c&lt;/a&gt; Chore: remove undocumented defaults() method (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9237&quot;&gt;#9237&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/583f0b8&quot;&gt;583f0b8&lt;/a&gt; Chore: avoid using globals in CLIEngine tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9242&quot;&gt;#9242&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c8bf687&quot;&gt;c8bf687&lt;/a&gt; Chore: upgrade eslint-plugin-eslint-plugin@1.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9234&quot;&gt;#9234&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c41a05&quot;&gt;3c41a05&lt;/a&gt; Chore: always normalize rules to new API in rules.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9236&quot;&gt;#9236&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5f4227&quot;&gt;c5f4227&lt;/a&gt; Chore: move logic for handling missing rules to rules.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9235&quot;&gt;#9235&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf1e344&quot;&gt;bf1e344&lt;/a&gt; Chore: create report translators lazily (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9221&quot;&gt;#9221&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2eedc1f&quot;&gt;2eedc1f&lt;/a&gt; Chore: remove currentFilename prop from Linter instances (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9219&quot;&gt;#9219&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c991630&quot;&gt;c991630&lt;/a&gt; Chore: remove ConfigOps.normalize in favor of ConfigOps.getRuleSeverity (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9224&quot;&gt;#9224&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/171962a&quot;&gt;171962a&lt;/a&gt; Chore: remove internal Linter#getAncestors helper (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9222&quot;&gt;#9222&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a567499&quot;&gt;a567499&lt;/a&gt; Chore: avoid storing list of problems on Linter instance (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9214&quot;&gt;#9214&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed6d088&quot;&gt;ed6d088&lt;/a&gt; Chore: avoid relying on undocumented Linter#getFilename API in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9218&quot;&gt;#9218&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.6.1 released</title>
    <link href="https://eslint.org/blog/2017/09/eslint-v4.6.1-released/"/>
    <updated>2017-09-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/09/eslint-v4.6.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb74b87&quot;&gt;cb74b87&lt;/a&gt; Fix: avoid adding globals when an env is used with &lt;code&gt;false&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9202&quot;&gt;#9202&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9203&quot;&gt;#9203&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9b7544&quot;&gt;f9b7544&lt;/a&gt; Docs: Correct a typo in &lt;a href=&quot;https://eslint.org/docs/rules/generator-star-spacing&quot;&gt;generator-star-spacing&lt;/a&gt; documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9205&quot;&gt;#9205&lt;/a&gt;) (Ethan Rutherford)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bdec46d&quot;&gt;bdec46d&lt;/a&gt; Build: avoid process leak when generating website (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9217&quot;&gt;#9217&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5c5e83&quot;&gt;e5c5e83&lt;/a&gt; Build: Fixing issue with docs generation (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9199&quot;&gt;#9199&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9200&quot;&gt;#9200&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.6.0 released</title>
    <link href="https://eslint.org/blog/2017/09/eslint-v4.6.0-released/"/>
    <updated>2017-09-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/09/eslint-v4.6.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;One new rule has been added: &lt;a href=&quot;https://eslint.org/docs/rules/function-paren-newline&quot;&gt;&lt;code&gt;function-paren-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/generator-star-spacing&quot;&gt;&lt;code&gt;generator-star-spacing&lt;/code&gt;&lt;/a&gt; rule is now configurable by function type.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e09973&quot;&gt;0e09973&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/function-paren-newline&quot;&gt;function-paren-newline&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6074&quot;&gt;#6074&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8102&quot;&gt;#8102&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6becf91&quot;&gt;6becf91&lt;/a&gt; Update: add eslint version to error output. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9037&quot;&gt;#9037&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9071&quot;&gt;#9071&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2db356b&quot;&gt;2db356b&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; Improve message to include the allowed patterns (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9176&quot;&gt;#9176&lt;/a&gt;) (Eli White)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8fbaf0a&quot;&gt;8fbaf0a&lt;/a&gt; Update: Add configurability to &lt;a href=&quot;https://eslint.org/docs/rules/generator-star-spacing&quot;&gt;generator-star-spacing&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8985&quot;&gt;#8985&lt;/a&gt;) (Ethan Rutherford)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1bbac51&quot;&gt;1bbac51&lt;/a&gt; Fix: avoid breaking eslint-plugin-eslint-comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9193&quot;&gt;#9193&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9196&quot;&gt;#9196&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e8b70a&quot;&gt;3e8b70a&lt;/a&gt; Fix: off-by-one error in eslint-disable comment checking (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9195&quot;&gt;#9195&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af4ad60&quot;&gt;af4ad60&lt;/a&gt; Fix: Handle error when running init without npm (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9169&quot;&gt;#9169&lt;/a&gt;) (Gabriel Aumala)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ab0434&quot;&gt;5ab0434&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; crash on sparse arrays with “off” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9157&quot;&gt;#9157&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9166&quot;&gt;#9166&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6e436f&quot;&gt;d6e436f&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; reported some parenthesized IIFEs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9140&quot;&gt;#9140&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9158&quot;&gt;#9158&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/56dd769&quot;&gt;56dd769&lt;/a&gt; Docs: fix link format in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-arrow-callback&quot;&gt;prefer-arrow-callback&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9198&quot;&gt;#9198&lt;/a&gt;) (Vse Mozhet Byt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/73815f6&quot;&gt;73815f6&lt;/a&gt; Docs: rewrite &lt;a href=&quot;https://eslint.org/docs/rules/prefer-arrow-callback&quot;&gt;prefer-arrow-callback&lt;/a&gt; documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8950&quot;&gt;#8950&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9077&quot;&gt;#9077&lt;/a&gt;) (Charles E. Morgan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de6dccd&quot;&gt;de6dccd&lt;/a&gt; Docs: add documentation for Linter methods (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6525&quot;&gt;#6525&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9151&quot;&gt;#9151&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ffa021e&quot;&gt;ffa021e&lt;/a&gt; Docs: &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;quotes&lt;/a&gt; rule - when does &#92;n require backticks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9135&quot;&gt;#9135&lt;/a&gt;) (avimar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6b115c&quot;&gt;e6b115c&lt;/a&gt; Build: Add an edit link to the rule docs’ metadata (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9049&quot;&gt;#9049&lt;/a&gt;) (Jed Fox)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88a64cc&quot;&gt;88a64cc&lt;/a&gt; Chore: Make parseJsonConfig() a pure function in Linter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9186&quot;&gt;#9186&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d3a854&quot;&gt;0d3a854&lt;/a&gt; Chore: avoid mutating report descriptors in report-translator (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9189&quot;&gt;#9189&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ed779c&quot;&gt;8ed779c&lt;/a&gt; Chore: remove currentScopes property from Linter instances (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9187&quot;&gt;#9187&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b94c6c&quot;&gt;4b94c6c&lt;/a&gt; Chore: make parse() a pure function in Linter (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9183&quot;&gt;#9183&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1be5634&quot;&gt;1be5634&lt;/a&gt; Chore: don’t make Linter a subclass of EventEmitter (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9177&quot;&gt;#9177&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e95af9b&quot;&gt;e95af9b&lt;/a&gt; Chore: don’t include internal test helpers in npm package (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9160&quot;&gt;#9160&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6fb32e1&quot;&gt;6fb32e1&lt;/a&gt; Chore: avoid using private Linter APIs in astUtils tests (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9173&quot;&gt;#9173&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d90030&quot;&gt;2d90030&lt;/a&gt; Chore: remove unused assignment. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9182&quot;&gt;#9182&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d672aef&quot;&gt;d672aef&lt;/a&gt; Chore: refactor reporting logic (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9168&quot;&gt;#9168&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c147b97&quot;&gt;c147b97&lt;/a&gt; Chore: Make SourceCodeFixer accept text instead of a SourceCode instance (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9178&quot;&gt;#9178&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f127423&quot;&gt;f127423&lt;/a&gt; Chore: avoid using private Linter APIs in Linter tests (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9175&quot;&gt;#9175&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2334335&quot;&gt;2334335&lt;/a&gt; Chore: avoid using private Linter APIs in SourceCode tests (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9174&quot;&gt;#9174&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2dc243a&quot;&gt;2dc243a&lt;/a&gt; Chore: avoid using internal Linter APIs in RuleTester (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9161&quot;&gt;#9161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9172&quot;&gt;#9172&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fcb7bb4&quot;&gt;fcb7bb4&lt;/a&gt; Chore: avoid unnecessarily complex forEach calls in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9159&quot;&gt;#9159&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60c5148&quot;&gt;60c5148&lt;/a&gt; Chore: improve coverage in lib/*.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9130&quot;&gt;#9130&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.5.0 released</title>
    <link href="https://eslint.org/blog/2017/08/eslint-v4.5.0-released/"/>
    <updated>2017-08-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/08/eslint-v4.5.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; rule can now be configured to ignore the indentation of specific types of syntax, using the &lt;code&gt;ignoredNodes&lt;/code&gt; option. This can be useful if you disagree with some of the indentation choices made by the &lt;code&gt;indent&lt;/code&gt; rule; instead of disabling the rule entirely when this happens, you can now configure it to avoid checking indentation for the specific cases that you want it to ignore.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/decdd2c&quot;&gt;decdd2c&lt;/a&gt; Update: allow arbitrary nodes to be ignored in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8594&quot;&gt;#8594&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9105&quot;&gt;#9105&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79062f3&quot;&gt;79062f3&lt;/a&gt; Update: fix indentation of multiline &lt;code&gt;new.target&lt;/code&gt; expressions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9116&quot;&gt;#9116&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bd09cd5&quot;&gt;bd09cd5&lt;/a&gt; Update: avoid requiring NaN spaces of indentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9083&quot;&gt;#9083&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9085&quot;&gt;#9085&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a4f53ba&quot;&gt;a4f53ba&lt;/a&gt; Fix: Include files with no messages in junit results (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9093&quot;&gt;#9093&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9094&quot;&gt;#9094&lt;/a&gt;) (Sean DuBois)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8add8f&quot;&gt;f8add8f&lt;/a&gt; Fix: don’t autofix with linter.verifyAndFix when &lt;code&gt;fix: false&lt;/code&gt; is used (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9098&quot;&gt;#9098&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ef734a&quot;&gt;6ef734a&lt;/a&gt; Docs: add missing word in processor documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9106&quot;&gt;#9106&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/77bcee4&quot;&gt;77bcee4&lt;/a&gt; Docs: update instructions for adding TSC members (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9086&quot;&gt;#9086&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d00e24f&quot;&gt;d00e24f&lt;/a&gt; Upgrade: &lt;code&gt;chalk&lt;/code&gt; to 2.x release (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9115&quot;&gt;#9115&lt;/a&gt;) (Stephen Edgar)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d6a9c0&quot;&gt;1d6a9c0&lt;/a&gt; Chore: enable eslint-plugin/test-case-shorthand-strings (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9067&quot;&gt;#9067&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c93a853&quot;&gt;c93a853&lt;/a&gt; Chore: Remove extra space in blogpost template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9088&quot;&gt;#9088&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.4.1 released</title>
    <link href="https://eslint.org/blog/2017/08/eslint-v4.4.1-released/"/>
    <updated>2017-08-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/08/eslint-v4.4.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ec93614&quot;&gt;ec93614&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-multi-spaces&quot;&gt;no-multi-spaces&lt;/a&gt; to avoid reporting consecutive tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9079&quot;&gt;#9079&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9087&quot;&gt;#9087&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.4.0 released</title>
    <link href="https://eslint.org/blog/2017/08/eslint-v4.4.0-released/"/>
    <updated>2017-08-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/08/eslint-v4.4.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;initial-support-for-ecmascript-2018&quot; tabindex=&quot;-1&quot;&gt;Initial support for ECMAScript 2018&lt;/h3&gt;
&lt;p&gt;Because ECMAScript 2018 is still under development, we are implementing features as they are finalized. This release includes the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Invalid escape sequences in tagged template literals&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62911e4&quot;&gt;62911e4&lt;/a&gt; Update: Add ImportDeclaration option to &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8955&quot;&gt;#8955&lt;/a&gt;) (David Irvine)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7247b6c&quot;&gt;7247b6c&lt;/a&gt; Update: handle indentation of custom destructuring syntax (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8990&quot;&gt;#8990&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9027&quot;&gt;#9027&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3d020b9&quot;&gt;3d020b9&lt;/a&gt; Update: emit a warning for ecmaFeatures rather than throwing an error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8974&quot;&gt;#8974&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3e4598&quot;&gt;b3e4598&lt;/a&gt; Fix: clarify AST and don’t use &lt;code&gt;node.start&lt;/code&gt;/&lt;code&gt;node.end&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8956&quot;&gt;#8956&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8984&quot;&gt;#8984&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78a85e0&quot;&gt;78a85e0&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; incorrectly reports async function expressions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9035&quot;&gt;#9035&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c794f86&quot;&gt;c794f86&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/getter-return&quot;&gt;getter-return&lt;/a&gt; reporting method named ‘get’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8919&quot;&gt;#8919&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9004&quot;&gt;#9004&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ab282f&quot;&gt;5ab282f&lt;/a&gt; Fix: Print error message in bin/eslint.js (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9011&quot;&gt;#9011&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9041&quot;&gt;#9041&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cdb82f2&quot;&gt;cdb82f2&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;padding-line-between-statements&lt;/a&gt; crash on semicolons after blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8748&quot;&gt;#8748&lt;/a&gt;) (Alexander Madyankin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f97279&quot;&gt;0f97279&lt;/a&gt; Fix: refactor &lt;a href=&quot;https://eslint.org/docs/rules/no-multi-spaces&quot;&gt;no-multi-spaces&lt;/a&gt; to avoid regex backtracking (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9001&quot;&gt;#9001&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9008&quot;&gt;#9008&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b74514d&quot;&gt;b74514d&lt;/a&gt; Fix: refactor RuleContext to not modify report locations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8980&quot;&gt;#8980&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8997&quot;&gt;#8997&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/31d7fd2&quot;&gt;31d7fd2&lt;/a&gt; Fix: inconsistent &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; behavior on computed properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8989&quot;&gt;#8989&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8999&quot;&gt;#8999&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3393894&quot;&gt;3393894&lt;/a&gt; Fix: avoid reporting the entire AST for missing rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8998&quot;&gt;#8998&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d2f8f9f&quot;&gt;d2f8f9f&lt;/a&gt; Fix: include name of invalid config in validation messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8963&quot;&gt;#8963&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8973&quot;&gt;#8973&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ae8458&quot;&gt;5ae8458&lt;/a&gt; Docs: fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9066&quot;&gt;#9066&lt;/a&gt;) (Jon Berry)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c3d5b39&quot;&gt;c3d5b39&lt;/a&gt; Docs: clarify options descriptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8875&quot;&gt;#8875&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9060&quot;&gt;#9060&lt;/a&gt;) (Brandon Mailhiot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/37158c5&quot;&gt;37158c5&lt;/a&gt; Docs: clarified behavior of globalReturn option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8953&quot;&gt;#8953&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9058&quot;&gt;#9058&lt;/a&gt;) (Brandon Mailhiot)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2f3553&quot;&gt;c2f3553&lt;/a&gt; Docs: Update example for MemberExpression option of &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9056&quot;&gt;#9056&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9057&quot;&gt;#9057&lt;/a&gt;) (Jeff)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0f78ec&quot;&gt;d0f78ec&lt;/a&gt; Docs: update rule deprecation policy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8635&quot;&gt;#8635&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9033&quot;&gt;#9033&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/50e3cf3&quot;&gt;50e3cf3&lt;/a&gt; Docs: Update &lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;sort-keys&lt;/a&gt; doc to define natural ordering (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9043&quot;&gt;#9043&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9045&quot;&gt;#9045&lt;/a&gt;) (Karan Sharma)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66c1d43&quot;&gt;66c1d43&lt;/a&gt; Docs: Create &lt;a href=&quot;http://support.md/&quot;&gt;SUPPORT.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9031&quot;&gt;#9031&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89196fd&quot;&gt;89196fd&lt;/a&gt; Upgrade: Espree to 3.5.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9074&quot;&gt;#9074&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad32697&quot;&gt;ad32697&lt;/a&gt; Upgrade: js-yaml to 3.9.1 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/9011&quot;&gt;#9011&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9044&quot;&gt;#9044&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b6c552&quot;&gt;9b6c552&lt;/a&gt; Upgrade: eslint-plugin-eslint-plugin@0.8.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9012&quot;&gt;#9012&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de75f9b&quot;&gt;de75f9b&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://eslint.org/docs/rules/object-property-newline&quot;&gt;object-property-newline&lt;/a&gt;.(fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9042&quot;&gt;#9042&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9068&quot;&gt;#9068&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ecfe6a&quot;&gt;7ecfe6a&lt;/a&gt; Chore: enable eslint-plugin/test-case-property-ordering (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9040&quot;&gt;#9040&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3141872&quot;&gt;3141872&lt;/a&gt; Chore: remove unnecessary eslint-disable comments in codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9032&quot;&gt;#9032&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3b95b8&quot;&gt;b3b95b8&lt;/a&gt; Chore: enable additional rules on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9013&quot;&gt;#9013&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acbe86a&quot;&gt;acbe86a&lt;/a&gt; Chore: disallow .substr and .substring in favor of .slice (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9010&quot;&gt;#9010&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0536d6&quot;&gt;d0536d6&lt;/a&gt; Chore: Optimizes adding Linter methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/9000&quot;&gt;#9000&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9007&quot;&gt;#9007&lt;/a&gt;) (Sean C Denison)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a0401f&quot;&gt;0a0401f&lt;/a&gt; Chore: fix spelling error. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/9003&quot;&gt;#9003&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c3ee46b&quot;&gt;c3ee46b&lt;/a&gt; Chore: fix misleading comment in RuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8995&quot;&gt;#8995&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.3.0 released</title>
    <link href="https://eslint.org/blog/2017/07/eslint-v4.3.0-released/"/>
    <updated>2017-07-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/07/eslint-v4.3.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/91dccdf&quot;&gt;91dccdf&lt;/a&gt; Update: support more options in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8796&quot;&gt;#8796&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3bebcfd&quot;&gt;3bebcfd&lt;/a&gt; Update: Support generator yields in no constant condition (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8762&quot;&gt;#8762&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e639358&quot;&gt;e639358&lt;/a&gt; Update: add question to confirm downgrade (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8870&quot;&gt;#8870&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8911&quot;&gt;#8911&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c231fa&quot;&gt;3c231fa&lt;/a&gt; Update: add enforceInMethodNames to &lt;a href=&quot;https://eslint.org/docs/rules/no-underscore-dangle&quot;&gt;no-underscore-dangle&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7065&quot;&gt;#7065&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7234&quot;&gt;#7234&lt;/a&gt;) (Gabriele Petronella)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/128591f&quot;&gt;128591f&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-numeric-literals&quot;&gt;prefer-numeric-literals&lt;/a&gt; warns Number.parseInt (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8913&quot;&gt;#8913&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8929&quot;&gt;#8929&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb8005d&quot;&gt;fb8005d&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-globals&quot;&gt;no-restricted-globals&lt;/a&gt; custom error messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8315&quot;&gt;#8315&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8932&quot;&gt;#8932&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ea3723&quot;&gt;1ea3723&lt;/a&gt; Update: fix indentation of parenthesized MemberExpressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8924&quot;&gt;#8924&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8928&quot;&gt;#8928&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9abc6f7&quot;&gt;9abc6f7&lt;/a&gt; Update: fix BinaryExpression indentation edge case (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8914&quot;&gt;#8914&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8930&quot;&gt;#8930&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/96df8c9&quot;&gt;96df8c9&lt;/a&gt; Fix: Handle fixing objects containing comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8484&quot;&gt;#8484&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8944&quot;&gt;#8944&lt;/a&gt;) (Brian Schemp)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a5fd101&quot;&gt;a5fd101&lt;/a&gt; Fix: duplicated error message if a crash occurs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8964&quot;&gt;#8964&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8965&quot;&gt;#8965&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/55bc35d&quot;&gt;55bc35d&lt;/a&gt; Fix: Avoid shell mangling during eslint --init (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8936&quot;&gt;#8936&lt;/a&gt;) (Anders Kaseorg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/597c217&quot;&gt;597c217&lt;/a&gt; Fix: confusing error if plugins from config is not an array (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8888&quot;&gt;#8888&lt;/a&gt;) (Calvin Freitas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e39d41d&quot;&gt;e39d41d&lt;/a&gt; Docs: Make &lt;code&gt;peerDependencies&lt;/code&gt; package.json snippet valid JSON (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8971&quot;&gt;#8971&lt;/a&gt;) (Sam Adams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8d122c&quot;&gt;f8d122c&lt;/a&gt; Docs: trailing commas not allowed in json (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8969&quot;&gt;#8969&lt;/a&gt;) (Scott Fletcher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/601039d&quot;&gt;601039d&lt;/a&gt; Docs: fix badge in eslint-config-eslint readme (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8954&quot;&gt;#8954&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/846f8b1&quot;&gt;846f8b1&lt;/a&gt; Docs: Clarified that core PRs require issue in maintainer guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8927&quot;&gt;#8927&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e90453&quot;&gt;0e90453&lt;/a&gt; Docs: Fixing broken cyclomatic &lt;a href=&quot;https://eslint.org/docs/rules/complexity&quot;&gt;complexity&lt;/a&gt; link (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8396&quot;&gt;#8396&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8937&quot;&gt;#8937&lt;/a&gt;) (Chris Bargren)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c1dd6d&quot;&gt;3c1dd6d&lt;/a&gt; Docs: add description of &lt;a href=&quot;https://eslint.org/docs/rules/no-sync&quot;&gt;no-sync&lt;/a&gt; &lt;code&gt;allowAtRootLevel&lt;/code&gt; option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8902&quot;&gt;#8902&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8906&quot;&gt;#8906&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/45f8cd9&quot;&gt;45f8cd9&lt;/a&gt; Docs: fix verifyAndFix result property name (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8903&quot;&gt;#8903&lt;/a&gt;) (Tino Vyatkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a89e1c&quot;&gt;1a89e1c&lt;/a&gt; Docs: Fix always-multiline example in &lt;a href=&quot;https://eslint.org/docs/rules/multiline-ternary&quot;&gt;multiline-ternary&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8904&quot;&gt;#8904&lt;/a&gt;) (Nathan Woltman)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d09288a&quot;&gt;d09288a&lt;/a&gt; Chore: Use &lt;code&gt;output: null&lt;/code&gt; to assert that a test case is not autofixed. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8960&quot;&gt;#8960&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10c3d78&quot;&gt;10c3d78&lt;/a&gt; Chore: fix misleading &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8925&quot;&gt;#8925&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a747b6f&quot;&gt;a747b6f&lt;/a&gt; Chore: make minor improvements to &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; internals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8947&quot;&gt;#8947&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8a8350&quot;&gt;a8a8350&lt;/a&gt; Chore: improve performance of &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8905&quot;&gt;#8905&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/764b2a9&quot;&gt;764b2a9&lt;/a&gt; Chore: update header info in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8926&quot;&gt;#8926&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/933a9cf&quot;&gt;933a9cf&lt;/a&gt; Chore: add a fuzzer to detect bugs in core rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8422&quot;&gt;#8422&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.2.0 released</title>
    <link href="https://eslint.org/blog/2017/07/eslint-v4.2.0-released/"/>
    <updated>2017-07-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/07/eslint-v4.2.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;linter.verifyAndFix&lt;/code&gt; can now accept a filter function for fixes&lt;/p&gt;
&lt;p&gt;When using the Node.js API to autofix code, it’s sometimes undesirable to autofix every problem at once. For example, a user might want to avoid fixing problems reported by particular rule, or a tool might want to only fix one problem at a time. You can now pass an object like &lt;code&gt;{ fix: message =&amp;gt; /* ... */ }&lt;/code&gt; to the third argument of &lt;code&gt;linter.verifyAndFix&lt;/code&gt;, or to the &lt;code&gt;CLIEngine&lt;/code&gt; constructor. If the &lt;code&gt;fix&lt;/code&gt; function returns &lt;code&gt;true&lt;/code&gt;, a fix is applied – otherwise, a fix is not applied. &lt;a href=&quot;https://github.com/IanVS/eslint-nibble&quot;&gt;&lt;code&gt;eslint-nibble&lt;/code&gt;&lt;/a&gt; uses this feature to autofix individual rules, or only autofix errors rather than warnings.&lt;/p&gt;
&lt;p&gt;Also see: &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#cliengine&quot;&gt;documentation&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/getter-return&quot;&gt;&lt;code&gt;getter-return&lt;/code&gt;&lt;/a&gt; rule has been added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/no-sync&quot;&gt;&lt;code&gt;no-sync&lt;/code&gt;&lt;/a&gt; rule now has a boolean &lt;code&gt;allowAtRootLevel&lt;/code&gt; option to allow sync function calls at the top level of a file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/multiline-ternary&quot;&gt;&lt;code&gt;multiline-ternary&lt;/code&gt;&lt;/a&gt; rule now has an &lt;code&gt;always-multiline&lt;/code&gt; option.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c693be5&quot;&gt;c693be5&lt;/a&gt; New: Allow passing a function as &lt;code&gt;fix&lt;/code&gt; option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8039&quot;&gt;#8039&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8730&quot;&gt;#8730&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8698a92&quot;&gt;8698a92&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/getter-return&quot;&gt;getter-return&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8449&quot;&gt;#8449&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8460&quot;&gt;#8460&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0f0101&quot;&gt;e0f0101&lt;/a&gt; Update: fix indentation of nested function parameters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8892&quot;&gt;#8892&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8900&quot;&gt;#8900&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/975dacf&quot;&gt;975dacf&lt;/a&gt; Update: fix indentation of EmptyStatements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8882&quot;&gt;#8882&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8885&quot;&gt;#8885&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3767cda&quot;&gt;3767cda&lt;/a&gt; Update: add &lt;a href=&quot;https://eslint.org/docs/rules/no-sync&quot;&gt;no-sync&lt;/a&gt; option to allow at root level (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7985&quot;&gt;#7985&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8859&quot;&gt;#8859&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f5bfc2&quot;&gt;1f5bfc2&lt;/a&gt; Update: Add always-multiline option to &lt;a href=&quot;https://eslint.org/docs/rules/multiline-ternary&quot;&gt;multiline-ternary&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8770&quot;&gt;#8770&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8841&quot;&gt;#8841&lt;/a&gt;) (Nathan Woltman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/676af9e&quot;&gt;676af9e&lt;/a&gt; Update: fix indentation of JSXExpressionContainer contents (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8832&quot;&gt;#8832&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8850&quot;&gt;#8850&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85c9327&quot;&gt;85c9327&lt;/a&gt; Update: fix parenthesized CallExpression indentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8790&quot;&gt;#8790&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8802&quot;&gt;#8802&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/be8d354&quot;&gt;be8d354&lt;/a&gt; Update: simplify variable declarator &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; handling (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8785&quot;&gt;#8785&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8801&quot;&gt;#8801&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/11ffe6b&quot;&gt;11ffe6b&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-regex-spaces&quot;&gt;no-regex-spaces&lt;/a&gt; rule incorrectly fixes quantified spaces (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8773&quot;&gt;#8773&lt;/a&gt;) (Keri Warr)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/931a9f1&quot;&gt;931a9f1&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; false positive with multi-line await expression (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8837&quot;&gt;#8837&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f00854e&quot;&gt;f00854e&lt;/a&gt; Fix: --quiet no longer fixes warnings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8675&quot;&gt;#8675&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8858&quot;&gt;#8858&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/22116f2&quot;&gt;22116f2&lt;/a&gt; Fix: correct &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; JSON schema (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8864&quot;&gt;#8864&lt;/a&gt;) (Evgeny Poberezkin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c3ac8e&quot;&gt;5c3ac8e&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;arrow-parens&lt;/a&gt; fixer gets tripped up with trailing comma in args (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8838&quot;&gt;#8838&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9417818&quot;&gt;9417818&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-debugger&quot;&gt;no-debugger&lt;/a&gt; autofixer produced invalid syntax (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8806&quot;&gt;#8806&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eac06f2&quot;&gt;eac06f2&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; false positives for variables called “let” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8808&quot;&gt;#8808&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/616587f&quot;&gt;616587f&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/dot-notation&quot;&gt;dot-notation&lt;/a&gt; autofix produces syntax errors for object called “let” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8807&quot;&gt;#8807&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a53ef7e&quot;&gt;a53ef7e&lt;/a&gt; Fix: don’t require a third argument in linter.verifyAndFix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8805&quot;&gt;#8805&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8809&quot;&gt;#8809&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c8de92&quot;&gt;7c8de92&lt;/a&gt; Docs: Clarified PR guidelines in maintainer guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8876&quot;&gt;#8876&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d1fc408&quot;&gt;d1fc408&lt;/a&gt; Docs: Update CLA link in Contributing docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8883&quot;&gt;#8883&lt;/a&gt;) (Calvin Freitas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ce553d&quot;&gt;1ce553d&lt;/a&gt; Docs: Fix wording of minProperties in &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8874&quot;&gt;#8874&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8878&quot;&gt;#8878&lt;/a&gt;) (solmsted)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8796d55&quot;&gt;8796d55&lt;/a&gt; Docs: add missing item to 4.0 migration guide table of contents (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8835&quot;&gt;#8835&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce969f9&quot;&gt;ce969f9&lt;/a&gt; Docs: add guidelines for patch release communication (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7277&quot;&gt;#7277&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8823&quot;&gt;#8823&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c83c99&quot;&gt;5c83c99&lt;/a&gt; Docs: Clarify arrow function parens in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8741&quot;&gt;#8741&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8822&quot;&gt;#8822&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/84d921d&quot;&gt;84d921d&lt;/a&gt; Docs: Added note about Node/CJS scoping to &lt;a href=&quot;https://eslint.org/docs/rules/no-redeclare&quot;&gt;no-redeclare&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8814&quot;&gt;#8814&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8820&quot;&gt;#8820&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ad8b70&quot;&gt;5ad8b70&lt;/a&gt; Docs: add minor formatting improvement to paragraph about parsers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8816&quot;&gt;#8816&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88ed041&quot;&gt;88ed041&lt;/a&gt; Build: Turnoff CI branch build (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8804&quot;&gt;#8804&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8873&quot;&gt;#8873&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4f2e29&quot;&gt;c4f2e29&lt;/a&gt; Build: fix race condition in demo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8827&quot;&gt;#8827&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f95a3e&quot;&gt;9f95a3e&lt;/a&gt; Chore: remove unused helper method from &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8901&quot;&gt;#8901&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/72f22eb&quot;&gt;72f22eb&lt;/a&gt; Chore: replace is-my-json-valid with Ajv (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8852&quot;&gt;#8852&lt;/a&gt;) (Gajus Kuizinas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b678535&quot;&gt;b678535&lt;/a&gt; Chore: Add collapsible block for config in ISSUE_TEMPLATE (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8872&quot;&gt;#8872&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/330dd58&quot;&gt;330dd58&lt;/a&gt; Chore: fix title of linter test suite (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8861&quot;&gt;#8861&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/60099ed&quot;&gt;60099ed&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/for-direction&quot;&gt;for-direction&lt;/a&gt; rule on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8853&quot;&gt;#8853&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0d1a84&quot;&gt;e0d1a84&lt;/a&gt; Chore: upgrade eslint-plugin-eslint-plugin &amp;amp; eslint-plugin-node (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8856&quot;&gt;#8856&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0780d86&quot;&gt;0780d86&lt;/a&gt; Chore: remove identical tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8851&quot;&gt;#8851&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.1.1 released</title>
    <link href="https://eslint.org/blog/2017/06/eslint-v4.1.1-released/"/>
    <updated>2017-06-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/06/eslint-v4.1.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f307aa0&quot;&gt;f307aa0&lt;/a&gt; Fix: ensure configs from a plugin are cached separately (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8792&quot;&gt;#8792&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8798&quot;&gt;#8798&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d041e7&quot;&gt;0d041e7&lt;/a&gt; Fix: avoid crashing when using baseConfig with extends (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8791&quot;&gt;#8791&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8797&quot;&gt;#8797&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b48ae8&quot;&gt;8b48ae8&lt;/a&gt; Docs: Add doc on parser services (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8390&quot;&gt;#8390&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8795&quot;&gt;#8795&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03213bb&quot;&gt;03213bb&lt;/a&gt; Chore: improve comment explanation of &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; internal functions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8800&quot;&gt;#8800&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d2e88ed&quot;&gt;d2e88ed&lt;/a&gt; Chore: Fix misleading comment in ConfigCache.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8799&quot;&gt;#8799&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.1.0 released</title>
    <link href="https://eslint.org/blog/2017/06/eslint-v4.1.0-released/"/>
    <updated>2017-06-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/06/eslint-v4.1.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;h3 id=&quot;glob-based-configuration&quot; tabindex=&quot;-1&quot;&gt;Glob-based configuration&lt;/h3&gt;
&lt;p&gt;Previously, it was not possible to use different ESLint configurations for two different files in the same directory. For example, projects that place test files in the same directory as the corresponding source files were unable to use different ESLint configurations for the test files. Adding support for this has been one of our most requested features.&lt;/p&gt;
&lt;p&gt;This release adds support for glob-based configuration via an &lt;code&gt;overrides&lt;/code&gt; key in a config file, which can be used to apply a configuration to specific globs. For example, you can now enable the &lt;code&gt;mocha&lt;/code&gt; environment on only test files, with the following config:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// ... the rest of your config (applied to all files)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token literal-property property&quot;&gt;overrides&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token literal-property property&quot;&gt;files&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;foo/**/*.spec.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;bar/**/*.spec.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token comment&quot;&gt;// Override config (only applied to files that match the given globs)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token literal-property property&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;mocha&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For full details, see the &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#configuration-based-on-glob-patterns&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;ignoring-files-from-package.json&quot; tabindex=&quot;-1&quot;&gt;Ignoring files from &lt;code&gt;package.json&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;It’s common for users to use an &lt;code&gt;.eslintignore&lt;/code&gt; file to indicate the files that they would like ESLint to ignore. However, if you don’t want to add additional files to your project root, you can now ignore files by setting the &lt;code&gt;eslintIgnore&lt;/code&gt; property in a &lt;code&gt;package.json&lt;/code&gt; file to a list of globs:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;&quot;eslintIgnore&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token string&quot;&gt;&quot;build/**/*.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token string&quot;&gt;&quot;dist/**/*.js&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Also see: &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#ignoring-files-and-directories&quot;&gt;documentation&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;applying-multiple-autofixes-simultaneously&quot; tabindex=&quot;-1&quot;&gt;Applying multiple autofixes simultaneously&lt;/h3&gt;
&lt;p&gt;When writing a custom rule that can automatically fix problems, one sometimes needs to apply multiple fixes atomically. For example, if an autofix adds parentheses around a piece of source code, adding only one parenthesis will result in a syntax error. Since ESLint does not guarantee that it will be able to apply every fix without conflicts, it was previously not possible to atomically apply multiple fixes (without using confusing workarounds).&lt;/p&gt;
&lt;p&gt;Starting in 4.1.0, if you return an array of fixes from a &lt;code&gt;fix&lt;/code&gt; function rather than a single fix, all the fixes in the array will be applied atomically.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;context&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;report&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  node&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  message&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token function&quot;&gt;fix&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;fixer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      fixer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;insertTextBefore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;(&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      fixer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;insertTextAfter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;)&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Also see: &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#applying-fixes&quot;&gt;Autofixing docs&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;applying-autofixes-from-linter&quot; tabindex=&quot;-1&quot;&gt;Applying autofixes from &lt;code&gt;Linter&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;When using ESLint’s Node.js API, it was previously not possible to get automatic fix information for a given source code and configuration when using &lt;code&gt;eslint.Linter&lt;/code&gt;. Instead, one had to use &lt;code&gt;eslint.CLIEngine&lt;/code&gt;, which is more general and less easy to use.&lt;/p&gt;
&lt;p&gt;Starting in 4.1.0, you can now use &lt;code&gt;Linter#verifyAndFix&lt;/code&gt; to get autofixing information when using &lt;code&gt;Linter&lt;/code&gt;. (You should still use &lt;code&gt;CLIEngine&lt;/code&gt; if you need to do more general operations, such as reading config files from the filesystem.)&lt;/p&gt;
&lt;p&gt;For more details, see the &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#verifyandfix&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;other-highlights&quot; tabindex=&quot;-1&quot;&gt;Other highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;An &lt;code&gt;enforceForArrowConditionals&lt;/code&gt; option has been added to the &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;&lt;code&gt;no-extra-parens&lt;/code&gt;&lt;/a&gt; rule.&lt;/li&gt;
&lt;li&gt;An &lt;code&gt;ignoreComments&lt;/code&gt; option has been added to the &lt;a href=&quot;https://eslint.org/docs/rules/no-trailing-spaces&quot;&gt;&lt;code&gt;no-trailing-spaces&lt;/code&gt;&lt;/a&gt; rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id=&quot;full-changelog&quot; tabindex=&quot;-1&quot;&gt;Full Changelog&lt;/h1&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a21dd32c&quot;&gt;a21dd32c&lt;/a&gt; New: Add &lt;code&gt;overrides&lt;/code&gt;/&lt;code&gt;files&lt;/code&gt; options for glob-based config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3611&quot;&gt;#3611&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8081&quot;&gt;#8081&lt;/a&gt;) (Sylvan Mably)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5f81a68a&quot;&gt;5f81a68a&lt;/a&gt; New: Add eslintIgnore support to package.json (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8458&quot;&gt;#8458&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8690&quot;&gt;#8690&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/291a7830&quot;&gt;291a7830&lt;/a&gt; Update: &lt;code&gt;enforceForArrowConditionals&lt;/code&gt; to &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;&lt;code&gt;no-extra-parens&lt;/code&gt;&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6196&quot;&gt;#6196&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8439&quot;&gt;#8439&lt;/a&gt;) (Evilebot Tnawi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/879688ce&quot;&gt;879688ce&lt;/a&gt; Update: Add ignoreComments option to &lt;a href=&quot;https://eslint.org/docs/rules/no-trailing-spaces&quot;&gt;no-trailing-spaces&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8061&quot;&gt;#8061&lt;/a&gt;) (Jake Roussel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/98512881&quot;&gt;98512881&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; errors on multiline destructure (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8729&quot;&gt;#8729&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8756&quot;&gt;#8756&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/673a58bc&quot;&gt;673a58bc&lt;/a&gt; Update: support multiple fixes in a report (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7348&quot;&gt;#7348&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8101&quot;&gt;#8101&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b5a70b4e&quot;&gt;b5a70b4e&lt;/a&gt; Update: fix multiline binary operator/parentheses indentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8719&quot;&gt;#8719&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab8b0167&quot;&gt;ab8b0167&lt;/a&gt; Update: fix MemberExpression indentation with “off” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8721&quot;&gt;#8721&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8724&quot;&gt;#8724&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb5d12c1&quot;&gt;eb5d12c1&lt;/a&gt; Update: Add Fixer method to Linter API (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8631&quot;&gt;#8631&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7a1bc389&quot;&gt;7a1bc389&lt;/a&gt; Fix: don’t pass default parserOptions to custom parsers (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8744&quot;&gt;#8744&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8745&quot;&gt;#8745&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7cc1e6f&quot;&gt;b7cc1e6f&lt;/a&gt; Fix: Space-infix-ops should ignore type annotations in TypeScript (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8341&quot;&gt;#8341&lt;/a&gt;) (Reyad Attiyat)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/46e73eea&quot;&gt;46e73eea&lt;/a&gt; Fix: eslint --init installs wrong dependencies of popular styles (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7338&quot;&gt;#7338&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8713&quot;&gt;#8713&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e8f1362a&quot;&gt;e8f1362a&lt;/a&gt; Docs: Remove wrong descriptions in &lt;code&gt;padded-block&lt;/code&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8783&quot;&gt;#8783&lt;/a&gt;) (Plusb Preco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3608f06c&quot;&gt;3608f06c&lt;/a&gt; Docs: Increase visibility of code of conduct (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8758&quot;&gt;#8758&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8764&quot;&gt;#8764&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3419f644&quot;&gt;3419f644&lt;/a&gt; Docs: describe how to use formatters on the formatter demo page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8754&quot;&gt;#8754&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b58ae2e6&quot;&gt;b58ae2e6&lt;/a&gt; Chore: Only instantiate fileEntryCache when cache flage set (perf) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8763&quot;&gt;#8763&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5b40528&quot;&gt;c5b40528&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/computed-property-spacing&quot;&gt;computed-property-spacing&lt;/a&gt; on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8760&quot;&gt;#8760&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a3ff8f21&quot;&gt;a3ff8f21&lt;/a&gt; Chore: combine tests in tests/lib/eslint.js and tests/lib/linter.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8746&quot;&gt;#8746&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a82361b6&quot;&gt;a82361b6&lt;/a&gt; Chore: Prevent package-lock.json files from being created (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8742&quot;&gt;#8742&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8747&quot;&gt;#8747&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26a2daab&quot;&gt;26a2daab&lt;/a&gt; Chore: Cache fs reads in ignored-paths (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8363&quot;&gt;#8363&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8706&quot;&gt;#8706&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.0.0 released</title>
    <link href="https://eslint.org/blog/2017/06/eslint-v4.0.0-released/"/>
    <updated>2017-06-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/06/eslint-v4.0.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;There are several breaking changes in 4.0.0. We’ve created a &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-4.0.0&quot;&gt;migration guide&lt;/a&gt; to explain the breaking changes and describe how to upgrade.&lt;/li&gt;
&lt;li&gt;Seven new rules have been added:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/array-element-newline&quot;&gt;&lt;code&gt;array-element-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/semi-style&quot;&gt;&lt;code&gt;semi-style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;&lt;code&gt;padding-line-between-statements&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/for-direction&quot;&gt;&lt;code&gt;for-direction&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/switch-colon-spacing&quot;&gt;&lt;code&gt;switch-colon-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/array-bracket-newline&quot;&gt;&lt;code&gt;array-bracket-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-buffer-constructor&quot;&gt;&lt;code&gt;no-buffer-constructor&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Two rules are now autofixable with the &lt;code&gt;--fix&lt;/code&gt; flag:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-debugger&quot;&gt;&lt;code&gt;no-debugger&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-confusing-arrow&quot;&gt;&lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Three rules have been deprecated in favor of the new &lt;a href=&quot;https://eslint.org/docs/rules/padding-line-between-statements&quot;&gt;&lt;code&gt;padding-line-between-statements&lt;/code&gt;&lt;/a&gt; rule:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/lines-around-directive&quot;&gt;&lt;code&gt;lines-around-directive&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/newline-after-var&quot;&gt;&lt;code&gt;newline-after-var&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/newline-before-return&quot;&gt;&lt;code&gt;newline-before-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Three new utility methods have been added to the &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#contextgetsourcecode&quot;&gt;&lt;code&gt;SourceCode&lt;/code&gt;&lt;/a&gt; API, and &lt;code&gt;SourceCode#getComments&lt;/code&gt; has been deprecated.&lt;/li&gt;
&lt;li&gt;A new option has been added to the &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;&lt;code&gt;object-curly-newline&lt;/code&gt;&lt;/a&gt; rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;Changes since v4.0.0-rc.0:&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/34c4020&quot;&gt;34c4020&lt;/a&gt; Update: Add support for parens on left side for-loops (fixes: &lt;a href=&quot;https://github.com/eslint/eslint/issues/8393&quot;&gt;#8393&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8679&quot;&gt;#8679&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3da7b5e&quot;&gt;3da7b5e&lt;/a&gt; Fix: Semi-Style only check for comments when tokens exist (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8696&quot;&gt;#8696&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8697&quot;&gt;#8697&lt;/a&gt;) (Reyad Attiyat)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3cfe9ee&quot;&gt;3cfe9ee&lt;/a&gt; Fix: Add space between async and param on fix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8682&quot;&gt;#8682&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8693&quot;&gt;#8693&lt;/a&gt;) (Reyad Attiyat)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/735cd09&quot;&gt;735cd09&lt;/a&gt; Docs: Correct the comment in an example for &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-requires&quot;&gt;&lt;code&gt;no-mixed-requires&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8686&quot;&gt;#8686&lt;/a&gt;) (Fangzhou Li)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4aefb49&quot;&gt;4aefb49&lt;/a&gt; Chore: avoid using deprecated rules on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8708&quot;&gt;#8708&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/389feba&quot;&gt;389feba&lt;/a&gt; Chore: upgrade deps. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8684&quot;&gt;#8684&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c702858&quot;&gt;c702858&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/no-multiple-empty-lines&quot;&gt;no-multiple-empty-lines&lt;/a&gt; on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8694&quot;&gt;#8694&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/026f048&quot;&gt;026f048&lt;/a&gt; Chore: remove dead code from &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;prefer-const&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8683&quot;&gt;#8683&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.0.0-rc.0 released</title>
    <link href="https://eslint.org/blog/2017/06/eslint-v4.0.0-rc.0-released/"/>
    <updated>2017-06-02T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/06/eslint-v4.0.0-rc.0-released/</id>
    <content type="html">&lt;p&gt;Note: This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;GitHub repo&lt;/a&gt; or joining our &lt;a href=&quot;https://gitter.im/eslint/eslint&quot;&gt;Gitter channel&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;If you’re upgrading from 3.x, see the &lt;a href=&quot;https://eslint.org/docs/4.0.0/user-guide/migrating-to-4.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;One new rule was added in this release:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/array-element-newline&quot;&gt;&lt;code&gt;array-element-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;One rule gained support for &lt;code&gt;--fix&lt;/code&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/no-debugger&quot;&gt;&lt;code&gt;no-debugger&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ebd9d6f&quot;&gt;7ebd9d6f&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/array-element-newline&quot;&gt;array-element-newline&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6075&quot;&gt;#6075&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8375&quot;&gt;#8375&lt;/a&gt;) (Jan Peer Stöcklmair)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0058b0f8&quot;&gt;0058b0f8&lt;/a&gt; Update: add --fix to &lt;a href=&quot;https://eslint.org/docs/rules/no-debugger&quot;&gt;no-debugger&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8660&quot;&gt;#8660&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4ac969c&quot;&gt;c4ac969c&lt;/a&gt; Update: fix parenthesized ternary expression indentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8637&quot;&gt;#8637&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8649&quot;&gt;#8649&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95248336&quot;&gt;95248336&lt;/a&gt; Fix: Don’t check object destructing in integer property (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8654&quot;&gt;#8654&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8657&quot;&gt;#8657&lt;/a&gt;) (flowmemo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0e9fd2d&quot;&gt;d0e9fd2d&lt;/a&gt; Fix: Config merge to correctly account for extends (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8193&quot;&gt;#8193&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8636&quot;&gt;#8636&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4daa225&quot;&gt;b4daa225&lt;/a&gt; Docs: Note to --fix option for &lt;a href=&quot;https://eslint.org/docs/rules/strict&quot;&gt;strict&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8680&quot;&gt;#8680&lt;/a&gt;) (Vitaliy Potapov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0c83bd1&quot;&gt;b0c83bd1&lt;/a&gt; Docs: suggest pushing new commits to a PR instead of amending (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8632&quot;&gt;#8632&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/705d88f7&quot;&gt;705d88f7&lt;/a&gt; Docs: Update CLA link on Pull Requests page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8642&quot;&gt;#8642&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/794d4d6c&quot;&gt;794d4d6c&lt;/a&gt; Docs: missing paren on readme (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8640&quot;&gt;#8640&lt;/a&gt;) (Dan Beam)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/936bc174&quot;&gt;936bc174&lt;/a&gt; Docs: Add missing documentation for scoped modules in sharable config developer-guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8610&quot;&gt;#8610&lt;/a&gt;) (Jonathan Samines)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9b980ce&quot;&gt;c9b980ce&lt;/a&gt; Build: Add Node 8 on travis (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8669&quot;&gt;#8669&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f2f9fcb&quot;&gt;4f2f9fcb&lt;/a&gt; Build: update license checker to allow LGPL (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8647&quot;&gt;#8647&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8652&quot;&gt;#8652&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4df33e7c&quot;&gt;4df33e7c&lt;/a&gt; Chore: check for root:true in project sooner (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8561&quot;&gt;#8561&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8638&quot;&gt;#8638&lt;/a&gt;) (Victor Hom)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f62cff66&quot;&gt;f62cff66&lt;/a&gt; Chore: Remove dependency to user-home (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8604&quot;&gt;#8604&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8629&quot;&gt;#8629&lt;/a&gt;) (Pavol Madar)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.0.0-beta.0 released</title>
    <link href="https://eslint.org/blog/2017/05/eslint-v4.0.0-beta.0-released/"/>
    <updated>2017-05-19T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/05/eslint-v4.0.0-beta.0-released/</id>
    <content type="html">&lt;p&gt;Note: This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;GitHub repo&lt;/a&gt; or joining our &lt;a href=&quot;https://gitter.im/eslint/eslint&quot;&gt;Gitter channel&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;If you’re upgrading from 3.x, see the &lt;a href=&quot;https://eslint.org/docs/4.0.0/user-guide/migrating-to-4.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Four new rules have been added in this release:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/semi-style&quot;&gt;&lt;code&gt;semi-style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/padding-line-between-statements&quot;&gt;&lt;code&gt;padding-line-between-statements&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/for-direction&quot;&gt;&lt;code&gt;for-direction&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/switch-colon-spacing&quot;&gt;&lt;code&gt;switch-colon-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Previously, ESLint’s Node.js API exposed a mutable &lt;code&gt;eslint.linter&lt;/code&gt; object which could be used to lint text. This could cause problems if two unrelated modules were using &lt;code&gt;eslint.linter&lt;/code&gt; at the same time, because they might both mutate it and interfere with each other. To resolve this, ESLint now exposes an &lt;code&gt;eslint.Linter&lt;/code&gt; constructor, which can be used to create mutable &lt;code&gt;linter&lt;/code&gt; instances. We recommend that integrations switch to using &lt;code&gt;eslint.Linter&lt;/code&gt; rather than &lt;code&gt;eslint.linter&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Three rules have been deprecated in favor of the new &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/padding-line-between-statements&quot;&gt;&lt;code&gt;padding-line-between-statements&lt;/code&gt;&lt;/a&gt; rule:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/lines-around-directive&quot;&gt;&lt;code&gt;lines-around-directive&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/newline-after-var&quot;&gt;&lt;code&gt;newline-after-var&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/newline-before-return&quot;&gt;&lt;code&gt;newline-before-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ec436ee&quot;&gt;3ec436ee&lt;/a&gt; Breaking: New Linter API (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8454&quot;&gt;#8454&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8465&quot;&gt;#8465&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2f7015b6&quot;&gt;2f7015b6&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/semi-style&quot;&gt;semi-style&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8169&quot;&gt;#8169&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8542&quot;&gt;#8542&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a93a2f95&quot;&gt;a93a2f95&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/padding-line-between-statements&quot;&gt;padding-line-between-statements&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7356&quot;&gt;#7356&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8099&quot;&gt;#8099&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0ef09ea0&quot;&gt;0ef09ea0&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/for-direction&quot;&gt;for-direction&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8387&quot;&gt;#8387&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8519&quot;&gt;#8519&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/482d5720&quot;&gt;482d5720&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/switch-colon-spacing&quot;&gt;switch-colon-spacing&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7981&quot;&gt;#7981&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8540&quot;&gt;#8540&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3418479a&quot;&gt;3418479a&lt;/a&gt; Update: improve &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; of &lt;code&gt;flatTernaryExpressions&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8481&quot;&gt;#8481&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8587&quot;&gt;#8587&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/268d52ef&quot;&gt;268d52ef&lt;/a&gt; Update: Use sane defaults for JSX indentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8425&quot;&gt;#8425&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8593&quot;&gt;#8593&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afa35c68&quot;&gt;afa35c68&lt;/a&gt; Update: check allman-style classes correctly in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8493&quot;&gt;#8493&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8569&quot;&gt;#8569&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/456f519b&quot;&gt;456f519b&lt;/a&gt; Update: make &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; MemberExpression handling more robust (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8552&quot;&gt;#8552&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8554&quot;&gt;#8554&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb14584a&quot;&gt;eb14584a&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-unneeded-ternary&quot;&gt;no-unneeded-ternary&lt;/a&gt; change code behavior after fix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8507&quot;&gt;#8507&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8624&quot;&gt;#8624&lt;/a&gt;) (Jan Peer Stöcklmair)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fc9653a&quot;&gt;3fc9653a&lt;/a&gt; Fix: Call expression consistency in variable declaration (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8607&quot;&gt;#8607&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8619&quot;&gt;#8619&lt;/a&gt;) (Reyad Attiyat)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a73e6c09&quot;&gt;a73e6c09&lt;/a&gt; Fix: Fix failing uknown node test since &lt;a href=&quot;https://github.com/eslint/eslint/issues/8569&quot;&gt;#8569&lt;/a&gt; indents class bodies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8588&quot;&gt;#8588&lt;/a&gt;) (Reyad Attiyat)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c6c639d6&quot;&gt;c6c639d6&lt;/a&gt; Fix: Ignore unknown nodes for Indent rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8440&quot;&gt;#8440&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8504&quot;&gt;#8504&lt;/a&gt;) (Reyad Attiyat)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df17bc87&quot;&gt;df17bc87&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; crash on some computed keys (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8576&quot;&gt;#8576&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8577&quot;&gt;#8577&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de0b4ad7&quot;&gt;de0b4ad7&lt;/a&gt; Fix: Indent Ignore Variable Declaration init operator (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8546&quot;&gt;#8546&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8563&quot;&gt;#8563&lt;/a&gt;) (Reyad Attiyat)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/927ca0dc&quot;&gt;927ca0dc&lt;/a&gt; Fix: invalid syntax from &lt;a href=&quot;https://eslint.org/docs/rules/prefer-arrow-callback&quot;&gt;prefer-arrow-callback&lt;/a&gt; autofixer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8541&quot;&gt;#8541&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8555&quot;&gt;#8555&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/873310e5&quot;&gt;873310e5&lt;/a&gt; Fix: run &lt;a href=&quot;https://eslint.org/docs/rules/no-unexpected-multiline&quot;&gt;no-unexpected-multiline&lt;/a&gt; only if needed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8550&quot;&gt;#8550&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8551&quot;&gt;#8551&lt;/a&gt;) (Ruben Bridgewater)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/833a0cad&quot;&gt;833a0cad&lt;/a&gt; Fix: confusing RuleTester error message when options is not an array (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8557&quot;&gt;#8557&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b6093ef&quot;&gt;5b6093ef&lt;/a&gt; Docs: Remove .eslintignore reference to transpiled file filtering (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8622&quot;&gt;#8622&lt;/a&gt;) (Alex Summer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/11493781&quot;&gt;11493781&lt;/a&gt; Docs: Rephrase in about section (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8609&quot;&gt;#8609&lt;/a&gt;) (Sudarsan G P)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/729bbcdb&quot;&gt;729bbcdb&lt;/a&gt; Chore: Fix lgtm alerts. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8611&quot;&gt;#8611&lt;/a&gt;) (Max Schaefer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d21f5283&quot;&gt;d21f5283&lt;/a&gt; Chore: make shelljs a devDependency instead of a dependency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8608&quot;&gt;#8608&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/23401626&quot;&gt;23401626&lt;/a&gt; Chore: remove strip-bom dependency (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/8603&quot;&gt;#8603&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8606&quot;&gt;#8606&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25db3d22&quot;&gt;25db3d22&lt;/a&gt; Chore: avoid skipping test for env overrides (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/8291&quot;&gt;#8291&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8556&quot;&gt;#8556&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.0.0-alpha.2 released</title>
    <link href="https://eslint.org/blog/2017/05/eslint-v4.0.0-alpha.2-released/"/>
    <updated>2017-05-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/05/eslint-v4.0.0-alpha.2-released/</id>
    <content type="html">&lt;p&gt;Note: This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;GitHub repo&lt;/a&gt; or joining our &lt;a href=&quot;https://gitter.im/eslint/eslint&quot;&gt;Gitter channel&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ESLint will now validate .eslintrc.* files for unknown properties&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/734846b&quot;&gt;734846b&lt;/a&gt; Breaking: validate eslintrc properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8213&quot;&gt;#8213&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8295&quot;&gt;#8295&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74ab344&quot;&gt;74ab344&lt;/a&gt; Update: check allman-style blocks correctly in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8493&quot;&gt;#8493&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8499&quot;&gt;#8499&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6256d4&quot;&gt;f6256d4&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-extend-native&quot;&gt;no-extend-native&lt;/a&gt; checks global scope refs only (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8461&quot;&gt;#8461&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8528&quot;&gt;#8528&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/99c56d5&quot;&gt;99c56d5&lt;/a&gt; Update: handle multiline parents consistently in &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8455&quot;&gt;#8455&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8498&quot;&gt;#8498&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf940c6&quot;&gt;cf940c6&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; &lt;code&gt;from&lt;/code&gt; tokens in import statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8438&quot;&gt;#8438&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8466&quot;&gt;#8466&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d49acc3&quot;&gt;d49acc3&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-self-compare&quot;&gt;no-self-compare&lt;/a&gt; false negative on non-literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7677&quot;&gt;#7677&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8492&quot;&gt;#8492&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a9a90f&quot;&gt;0a9a90f&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt; doesn’t allow comments longer than code (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8532&quot;&gt;#8532&lt;/a&gt;) (Ken Gregory)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aaa1a81&quot;&gt;aaa1a81&lt;/a&gt; Fix: avoid creating extra whitespace in &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt; fixer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7621&quot;&gt;#7621&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8491&quot;&gt;#8491&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b463045&quot;&gt;b463045&lt;/a&gt; Docs: add typescript-eslint-parser (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8388&quot;&gt;#8388&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8534&quot;&gt;#8534&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e52d998&quot;&gt;e52d998&lt;/a&gt; Docs: Configuring Cascading and Hierarchy example correction (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8512&quot;&gt;#8512&lt;/a&gt;) (Cheong Yip)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e135aa5&quot;&gt;e135aa5&lt;/a&gt; Docs: Correct code of conduct link on &lt;a href=&quot;http://readme.md/&quot;&gt;Readme.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8517&quot;&gt;#8517&lt;/a&gt;) (Zander Mackie)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c3da77&quot;&gt;9c3da77&lt;/a&gt; Docs: list another related rule in &lt;a href=&quot;https://eslint.org/docs/rules/no-undefined&quot;&gt;no-undefined&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8467&quot;&gt;#8467&lt;/a&gt;) (Ethan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f987814&quot;&gt;f987814&lt;/a&gt; Docs: Update &lt;a href=&quot;http://changelog.md/&quot;&gt;CHANGELOG.md&lt;/a&gt; for v4.0.0-alpha.1 release (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8488&quot;&gt;#8488&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a333ff&quot;&gt;6a333ff&lt;/a&gt; Upgrade: espree@^3.4.2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8526&quot;&gt;#8526&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/025e97a&quot;&gt;025e97a&lt;/a&gt; Chore: delete duplicated test. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8527&quot;&gt;#8527&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/37e3ba1&quot;&gt;37e3ba1&lt;/a&gt; Chore: Add license report and scan status (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8503&quot;&gt;#8503&lt;/a&gt;) (Kevin Wang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afbea78&quot;&gt;afbea78&lt;/a&gt; Chore: don’t pull default options from eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8374&quot;&gt;#8374&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8381&quot;&gt;#8381&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.0.0-alpha.1 released</title>
    <link href="https://eslint.org/blog/2017/04/eslint-v4.0.0-alpha.1-released/"/>
    <updated>2017-04-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/04/eslint-v4.0.0-alpha.1-released/</id>
    <content type="html">&lt;p&gt;Note: This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;GitHub repo&lt;/a&gt; or joining our &lt;a href=&quot;https://gitter.im/eslint/eslint&quot;&gt;Gitter channel&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt; rule was added to &lt;code&gt;eslint:recommended&lt;/code&gt; in the last prerelease, but it has been removed from &lt;code&gt;eslint:recommended&lt;/code&gt; in this prerelease due to false positives that would occur when using methods in a few popular libraries. As a result, this rule will not be in &lt;code&gt;eslint:recommended&lt;/code&gt; for 4.0.0.&lt;/li&gt;
&lt;li&gt;Three new utility methods have been added to the &lt;code&gt;SourceCode&lt;/code&gt; API, and &lt;code&gt;SourceCode#getComments&lt;/code&gt; has been deprecated.&lt;/li&gt;
&lt;li&gt;One new rule has been added: &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/array-bracket-newline&quot;&gt;&lt;code&gt;array-bracket-newline&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/no-confusing-arrow&quot;&gt;&lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/a&gt; rule can now be autofixed.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/object-curly-newline&quot;&gt;&lt;code&gt;object-curly-newline&lt;/code&gt;&lt;/a&gt; rule has a new option.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fac53890&quot;&gt;fac53890&lt;/a&gt; Breaking: Remove &lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;array-callback-return&lt;/a&gt; from recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8428&quot;&gt;#8428&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8433&quot;&gt;#8433&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7bc6fe0a&quot;&gt;7bc6fe0a&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/array-bracket-newline&quot;&gt;array-bracket-newline&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8314&quot;&gt;#8314&lt;/a&gt;) (Jan Peer Stöcklmair)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b337738f&quot;&gt;b337738f&lt;/a&gt; Update: Add &lt;code&gt;consistent&lt;/code&gt; option to &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;&lt;code&gt;object-curly-newline&lt;/code&gt;&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6488&quot;&gt;#6488&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7720&quot;&gt;#7720&lt;/a&gt;) (Evilebot Tnawi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53fefb3b&quot;&gt;53fefb3b&lt;/a&gt; Update: add fix for &lt;a href=&quot;https://eslint.org/docs/rules/no-confusing-arrow&quot;&gt;no-confusing-arrow&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8347&quot;&gt;#8347&lt;/a&gt;) (Mordy Tikotzky)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/735d02d5&quot;&gt;735d02d5&lt;/a&gt; Update: Deprecate sourceCode.getComments() (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8408&quot;&gt;#8408&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8434&quot;&gt;#8434&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ac39e3b0&quot;&gt;ac39e3b0&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-unexpected-multiline&quot;&gt;no-unexpected-multiline&lt;/a&gt; to flag confusing division (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8469&quot;&gt;#8469&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8475&quot;&gt;#8475&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f540fd2&quot;&gt;9f540fd2&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; false negative about destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8442&quot;&gt;#8442&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8459&quot;&gt;#8459&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e35107f0&quot;&gt;e35107f0&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; crash on arrow functions without parens at start of line (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8477&quot;&gt;#8477&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0dadfe3&quot;&gt;b0dadfe3&lt;/a&gt; Docs: Update comments section of Migrating to v4.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8486&quot;&gt;#8486&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/973adeb6&quot;&gt;973adeb6&lt;/a&gt; Docs: State that functions option only applies in ES2017 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7809&quot;&gt;#7809&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8468&quot;&gt;#8468&lt;/a&gt;) (Thenaesh Elango)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/741ed393&quot;&gt;741ed393&lt;/a&gt; Docs: Clarify how to run local ESLint installation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8463&quot;&gt;#8463&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/48700fc8&quot;&gt;48700fc8&lt;/a&gt; Docs: Remove extra header line from LICENSE (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8448&quot;&gt;#8448&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c2a386e&quot;&gt;0c2a386e&lt;/a&gt; Docs: clarify new &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; behavior with MemberExpressions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8432&quot;&gt;#8432&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/446b8876&quot;&gt;446b8876&lt;/a&gt; Docs: update &lt;a href=&quot;https://eslint.org/docs/rules/space-before-function-paren&quot;&gt;space-before-function-paren&lt;/a&gt; docs for 4.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8430&quot;&gt;#8430&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8431&quot;&gt;#8431&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/288c96c1&quot;&gt;288c96c1&lt;/a&gt; Upgrade: dependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8304&quot;&gt;#8304&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c7efbd2&quot;&gt;1c7efbd2&lt;/a&gt; Build: changelog update for 4.0.0-alpha.1 (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10a1a2d7&quot;&gt;10a1a2d7&lt;/a&gt; Chore: Do not use cache when testing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8464&quot;&gt;#8464&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/161ee4ea&quot;&gt;161ee4ea&lt;/a&gt; Chore: avoid cloning comments array in TokenStore (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8436&quot;&gt;#8436&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v4.0.0-alpha.0 released</title>
    <link href="https://eslint.org/blog/2017/04/eslint-v4.0.0-alpha.0-released/"/>
    <updated>2017-04-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/04/eslint-v4.0.0-alpha.0-released/</id>
    <content type="html">&lt;p&gt;Note: This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by creating issues on our &lt;a href=&quot;https://github.com/eslint/eslint&quot;&gt;GitHub repo&lt;/a&gt; or joining our &lt;a href=&quot;https://gitter.im/eslint/eslint&quot;&gt;Gitter channel&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@4.0.0-alpha.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/4.0.0/user-guide/migrating-to-4.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There is one new rule in this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/no-buffer-constructor&quot;&gt;&lt;code&gt;no-buffer-constructor&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5a7e42&quot;&gt;f5a7e42&lt;/a&gt; Breaking: log number of fixable problems (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7364&quot;&gt;#7364&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8324&quot;&gt;#8324&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc53481&quot;&gt;cc53481&lt;/a&gt; Breaking: rewrite &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/indent&quot;&gt;indent&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1801&quot;&gt;#1801&lt;/a&gt;, &lt;a href=&quot;https://github.com/eslint/eslint/issues/3737&quot;&gt;#3737&lt;/a&gt;, &lt;a href=&quot;https://github.com/eslint/eslint/issues/3845&quot;&gt;#3845&lt;/a&gt;, &lt;a href=&quot;https://github.com/eslint/eslint/issues/6007&quot;&gt;#6007&lt;/a&gt;, …16 more) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7618&quot;&gt;#7618&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/867dd2e&quot;&gt;867dd2e&lt;/a&gt; Breaking: Calculate leading/trailing comments in core (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6724&quot;&gt;#6724&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7516&quot;&gt;#7516&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66af53e&quot;&gt;66af53e&lt;/a&gt; Breaking: Traverse into type annotations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7129&quot;&gt;#7129&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8365&quot;&gt;#8365&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e395919&quot;&gt;e395919&lt;/a&gt; Breaking: Resolve patterns from .eslintignore directory (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6759&quot;&gt;#6759&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7678&quot;&gt;#7678&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c778676&quot;&gt;c778676&lt;/a&gt; Breaking: convert RuleTester to ES6 class (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/8231&quot;&gt;#8231&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8263&quot;&gt;#8263&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6f7757e&quot;&gt;6f7757e&lt;/a&gt; Breaking: convert SourceCode to ES6 class (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/8231&quot;&gt;#8231&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8264&quot;&gt;#8264&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a9d916&quot;&gt;9a9d916&lt;/a&gt; Breaking: update eslint:recommended for 4.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8236&quot;&gt;#8236&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8372&quot;&gt;#8372&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0c63f0&quot;&gt;b0c63f0&lt;/a&gt; Breaking: infer endLine and endColumn from a reported node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8004&quot;&gt;#8004&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8234&quot;&gt;#8234&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/40b8c69&quot;&gt;40b8c69&lt;/a&gt; Breaking: &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/no-multi-spaces&quot;&gt;no-multi-spaces&lt;/a&gt; check around inline comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7693&quot;&gt;#7693&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7696&quot;&gt;#7696&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/034a575&quot;&gt;034a575&lt;/a&gt; Breaking: convert CLIEngine to ES6 class (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/8231&quot;&gt;#8231&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8262&quot;&gt;#8262&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7dd890d&quot;&gt;7dd890d&lt;/a&gt; Breaking: tweak &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/space-before-function-paren&quot;&gt;space-before-function-paren&lt;/a&gt; default option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8267&quot;&gt;#8267&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8285&quot;&gt;#8285&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e0dd27&quot;&gt;0e0dd27&lt;/a&gt; Breaking: Remove &lt;code&gt;ecmaFeatures&lt;/code&gt; from &lt;code&gt;eslint:recommended&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8239&quot;&gt;#8239&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2fa7502&quot;&gt;2fa7502&lt;/a&gt; Breaking: disallow scoped plugin references without scope (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6362&quot;&gt;#6362&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8233&quot;&gt;#8233&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e232464&quot;&gt;e232464&lt;/a&gt; Breaking: change defaults for &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/padded-blocks&quot;&gt;padded-blocks&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7879&quot;&gt;#7879&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8134&quot;&gt;#8134&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86cf3e4&quot;&gt;86cf3e4&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/no-buffer-constructor&quot;&gt;no-buffer-constructor&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5614&quot;&gt;#5614&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8413&quot;&gt;#8413&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8394e48&quot;&gt;8394e48&lt;/a&gt; Update: add deprecated &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/indent-legacy&quot;&gt;indent-legacy&lt;/a&gt; rule as v3.x &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/indent&quot;&gt;indent&lt;/a&gt; rule snapshot (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8286&quot;&gt;#8286&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f560c06&quot;&gt;f560c06&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/space-unary-ops&quot;&gt;space-unary-ops&lt;/a&gt; behavior with postfix UpdateExpressions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8391&quot;&gt;#8391&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2754141&quot;&gt;2754141&lt;/a&gt; Fix: more autofix token-combining bugs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8394&quot;&gt;#8394&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c87e85&quot;&gt;3c87e85&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/no-multi-spaces&quot;&gt;no-multi-spaces&lt;/a&gt; false positive with irregular &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/indent&quot;&gt;indent&lt;/a&gt; whitespace (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8412&quot;&gt;#8412&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/936af66&quot;&gt;936af66&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/no-multiple-empty-lines&quot;&gt;no-multiple-empty-lines&lt;/a&gt; crash on space after last &#92;n (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8401&quot;&gt;#8401&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8402&quot;&gt;#8402&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/950874f&quot;&gt;950874f&lt;/a&gt; Docs: add 4.0.0 migration guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8306&quot;&gt;#8306&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8313&quot;&gt;#8313&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de9f1a0&quot;&gt;de9f1a0&lt;/a&gt; Docs: ES6 syntax vs globals configuration (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7984&quot;&gt;#7984&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8350&quot;&gt;#8350&lt;/a&gt;) (Zander Mackie)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/769b121&quot;&gt;769b121&lt;/a&gt; Chore: Fix indentation errors in &lt;a href=&quot;https://eslint.org/docs/4.0.0/rules/indent-legacy&quot;&gt;indent-legacy&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8424&quot;&gt;#8424&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8842d7e&quot;&gt;8842d7e&lt;/a&gt; Chore: fix comment spacing in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8405&quot;&gt;#8405&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4673f6e&quot;&gt;4673f6e&lt;/a&gt; Chore: Switch to eslint-scope from escope (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8280&quot;&gt;#8280&lt;/a&gt;) (Corbin Uselton)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.19.0 released</title>
    <link href="https://eslint.org/blog/2017/03/eslint-v3.19.0-released/"/>
    <updated>2017-03-31T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/03/eslint-v3.19.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Building on the release of &lt;a href=&quot;https://eslint.org/docs/developer-guide/selectors&quot;&gt;AST selectors&lt;/a&gt; in &lt;a href=&quot;https://eslint.org/blog/2017/03/eslint-v3.18.0-released&quot;&gt;v3.18.0&lt;/a&gt;, &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;no-restricted-syntax&lt;/a&gt; now supports custom error messages:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token property&quot;&gt;&quot;rules&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token property&quot;&gt;&quot;no-restricted-syntax&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token property&quot;&gt;&quot;selector&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;CallExpression[callee.name=&#39;setTimeout&#39;][arguments.length!=2]&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;                &lt;span class=&quot;token property&quot;&gt;&quot;message&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;setTimeout must always be invoked with two arguments.&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Autofix is now more reliable thanks to nine individual fixes in this release.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/91baed4&quot;&gt;91baed4&lt;/a&gt; Update: allow custom messages in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;no-restricted-syntax&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8298&quot;&gt;#8298&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8357&quot;&gt;#8357&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e09132f&quot;&gt;e09132f&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; false positive with exports and object literals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8359&quot;&gt;#8359&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/35c93e6&quot;&gt;35c93e6&lt;/a&gt; Fix: prevent &lt;a href=&quot;https://eslint.org/docs/rules/space-before-function-paren&quot;&gt;space-before-function-paren&lt;/a&gt; from checking type annotations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8349&quot;&gt;#8349&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3342e9f&quot;&gt;3342e9f&lt;/a&gt; Fix: don’t modify operator precedence in &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;operator-assignment&lt;/a&gt; autofixer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8358&quot;&gt;#8358&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/155424c&quot;&gt;155424c&lt;/a&gt; Fix: ignore empty path in patterns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8362&quot;&gt;#8362&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8364&quot;&gt;#8364&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27616a8&quot;&gt;27616a8&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;prefer-const&lt;/a&gt; false positive with object spread (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8187&quot;&gt;#8187&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8297&quot;&gt;#8297&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b1046b&quot;&gt;1b1046b&lt;/a&gt; Fix: don’t classify plugins that throw errors as “missing” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6874&quot;&gt;#6874&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8323&quot;&gt;#8323&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29f4ba5&quot;&gt;29f4ba5&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;no-useless-computed-key&lt;/a&gt; invalid autofix for getters and setters (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8335&quot;&gt;#8335&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0541eaf&quot;&gt;0541eaf&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;no-implicit-coercion&lt;/a&gt; invalid autofix with consecutive identifiers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8340&quot;&gt;#8340&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41b9786&quot;&gt;41b9786&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; false positive with objects following arrows (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8339&quot;&gt;#8339&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3146167&quot;&gt;3146167&lt;/a&gt; Fix: &lt;code&gt;eslint.verify&lt;/code&gt; should not mutate config argument (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8329&quot;&gt;#8329&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8334&quot;&gt;#8334&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/927de90&quot;&gt;927de90&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/dot-notation&quot;&gt;dot-notation&lt;/a&gt; autofix produces invalid syntax for integer properties (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8332&quot;&gt;#8332&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9d1bea&quot;&gt;a9d1bea&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/comma-style&quot;&gt;comma-style&lt;/a&gt; autofix produces errors on parenthesized elements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8331&quot;&gt;#8331&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d52173f&quot;&gt;d52173f&lt;/a&gt; Fix: don’t generate invalid options in config-rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8326&quot;&gt;#8326&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6eda3b5&quot;&gt;6eda3b5&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; invalid autofix in for-of statements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8337&quot;&gt;#8337&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c819d8&quot;&gt;6c819d8&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/dot-notation&quot;&gt;dot-notation&lt;/a&gt; autofix produces errors on parenthesized computed keys (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8330&quot;&gt;#8330&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d883d7&quot;&gt;2d883d7&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; autofix produces errors on parenthesized functions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8328&quot;&gt;#8328&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd9b774&quot;&gt;cd9b774&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;quotes&lt;/a&gt; false positive with backtick option in method names (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8327&quot;&gt;#8327&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d064ba2&quot;&gt;d064ba2&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-else-return&quot;&gt;no-else-return&lt;/a&gt; false positive for ifs in single-statement position (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8338&quot;&gt;#8338&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2f144ca&quot;&gt;2f144ca&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;operator-assignment&lt;/a&gt; autofix errors with parentheses (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8293&quot;&gt;#8293&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8294&quot;&gt;#8294&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ddc6350&quot;&gt;ddc6350&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-param-reassign&quot;&gt;no-param-reassign&lt;/a&gt; false positive on destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8279&quot;&gt;#8279&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8281&quot;&gt;#8281&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f88375f&quot;&gt;f88375f&lt;/a&gt; Docs: clarify that &lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-negation&quot;&gt;no-unsafe-negation&lt;/a&gt; is in eslint:recommended (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8371&quot;&gt;#8371&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02f0d27&quot;&gt;02f0d27&lt;/a&gt; Docs: Add soda0289 to Development Team (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8367&quot;&gt;#8367&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8569a90&quot;&gt;8569a90&lt;/a&gt; Docs: add note about git’s linebreak handling to &lt;a href=&quot;https://eslint.org/docs/rules/linebreak-style&quot;&gt;linebreak-style&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8361&quot;&gt;#8361&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/602e9c2&quot;&gt;602e9c2&lt;/a&gt; Docs: fix incorrect selector examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8278&quot;&gt;#8278&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79a97cb&quot;&gt;79a97cb&lt;/a&gt; Upgrade: devDependencies (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8303&quot;&gt;#8303&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e4da200&quot;&gt;e4da200&lt;/a&gt; Upgrade: Mocha to 3.2.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8299&quot;&gt;#8299&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5878593&quot;&gt;5878593&lt;/a&gt; Chore: fix invalid syntax in &lt;a href=&quot;https://eslint.org/docs/rules/no-param-reassign&quot;&gt;no-param-reassign&lt;/a&gt; test (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8360&quot;&gt;#8360&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a718ba&quot;&gt;6a718ba&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/max-statements-per-line&quot;&gt;max-statements-per-line&lt;/a&gt; on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8321&quot;&gt;#8321&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/614b62e&quot;&gt;614b62e&lt;/a&gt; Chore: update sinon calls to deprecated API. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8310&quot;&gt;#8310&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0491572&quot;&gt;0491572&lt;/a&gt; Chore: use precalculated counts in codeframe formatter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8296&quot;&gt;#8296&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8733e6a&quot;&gt;8733e6a&lt;/a&gt; Chore: Fix incorrect error location properties in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8307&quot;&gt;#8307&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4ffb49&quot;&gt;c4ffb49&lt;/a&gt; Chore: Fix typos in test option assertions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8305&quot;&gt;#8305&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7521cd5&quot;&gt;7521cd5&lt;/a&gt; Chore: update token logic in rules to use ast-utils (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8288&quot;&gt;#8288&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b509ce&quot;&gt;9b509ce&lt;/a&gt; Chore: refactor &lt;a href=&quot;https://eslint.org/docs/rules/space-before-function-paren&quot;&gt;space-before-function-paren&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8284&quot;&gt;#8284&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8176b3&quot;&gt;f8176b3&lt;/a&gt; Chore: improve test coverage for node-event-generator (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8287&quot;&gt;#8287&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.18.0 released</title>
    <link href="https://eslint.org/blog/2017/03/eslint-v3.18.0-released/"/>
    <updated>2017-03-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/03/eslint-v3.18.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This release adds support for &lt;a href=&quot;https://eslint.org/docs/developer-guide/selectors&quot;&gt;AST selectors&lt;/a&gt;. AST selectors can describe syntax patterns very precisely, using a similar syntax to CSS selectors. Selectors can be used to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;simplify the implementation of custom rules.&lt;/li&gt;
&lt;li&gt;disallow particular syntax patterns in a codebase using the &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;no-restricted-syntax&lt;/a&gt; rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, suppose you want to disallow calls to Mocha’s &lt;code&gt;xdescribe&lt;/code&gt; function in your codebase. Previously, it was not possible to do this without writing a custom rule. However, now you can configure the no-restricted-syntax rule with a selector:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token property&quot;&gt;&quot;rules&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token property&quot;&gt;&quot;no-restricted-syntax&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token string&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;      &lt;span class=&quot;token string&quot;&gt;&quot;CallExpression[callee.name=&#39;xdescribe&#39;]&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Selectors can give you a lot of control over specific patterns in your code, without needing to write a custom rule for each pattern.&lt;/p&gt;
&lt;p&gt;For more details, see the &lt;a href=&quot;https://eslint.org/docs/developer-guide/selectors&quot;&gt;selector documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b678a6&quot;&gt;1b678a6&lt;/a&gt; New: allow rules to listen for AST selectors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5407&quot;&gt;#5407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7833&quot;&gt;#7833&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/23eca51&quot;&gt;23eca51&lt;/a&gt; Update: Add allowTaggedTemplates to &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-expressions&quot;&gt;no-unused-expressions&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7632&quot;&gt;#7632&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8253&quot;&gt;#8253&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f8afe6&quot;&gt;7f8afe6&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; overlooked spread and superClass (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8175&quot;&gt;#8175&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8209&quot;&gt;#8209&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85f74ca&quot;&gt;85f74ca&lt;/a&gt; Fix: broken code path of direct nested loops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8248&quot;&gt;#8248&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8274&quot;&gt;#8274&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a61c359&quot;&gt;a61c359&lt;/a&gt; Fix: Ignore hidden folders when resolving globs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8259&quot;&gt;#8259&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8270&quot;&gt;#8270&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c0fc31&quot;&gt;0c0fc31&lt;/a&gt; Fix: false positive of &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; about spread and sequense (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8275&quot;&gt;#8275&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/47c3171&quot;&gt;47c3171&lt;/a&gt; Fix: typo in console.error (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8258&quot;&gt;#8258&lt;/a&gt;) (Jan Peer Stöcklmair)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13eead9&quot;&gt;13eead9&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/sort-vars&quot;&gt;sort-vars&lt;/a&gt; crash on mixed destructuring declarations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8245&quot;&gt;#8245&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/133f489&quot;&gt;133f489&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/func-name-matching&quot;&gt;func-name-matching&lt;/a&gt; crash on destructuring assignment to functions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8247&quot;&gt;#8247&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a34b9c4&quot;&gt;a34b9c4&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/func-name-matching&quot;&gt;func-name-matching&lt;/a&gt; crash on non-string literal computed keys (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8246&quot;&gt;#8246&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b5c236&quot;&gt;5b5c236&lt;/a&gt; Fix: wrong comment when module not found in config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8192&quot;&gt;#8192&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8196&quot;&gt;#8196&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e104973&quot;&gt;e104973&lt;/a&gt; Docs: remove self-reference in &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;no-restricted-syntax&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8277&quot;&gt;#8277&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7276e6d&quot;&gt;7276e6d&lt;/a&gt; Docs: remove unneeded semicolons in &lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;arrow-parens&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8249&quot;&gt;#8249&lt;/a&gt;) (Dmitry Gershun)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df12137&quot;&gt;df12137&lt;/a&gt; Docs: fix typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8235&quot;&gt;#8235&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce6ff56&quot;&gt;ce6ff56&lt;/a&gt; Docs: set recommended true for &lt;a href=&quot;https://eslint.org/docs/rules/no-global-assign&quot;&gt;no-global-assign&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8215&quot;&gt;#8215&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8218&quot;&gt;#8218&lt;/a&gt;) (BinYi LIU)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9ede3f&quot;&gt;f9ede3f&lt;/a&gt; Upgrade: doctrine to 2.0.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8269&quot;&gt;#8269&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c40a25&quot;&gt;8c40a25&lt;/a&gt; Upgrade: update concat-stream to 1.5.2 (&lt;a href=&quot;https://github.com/eslint/eslint/pull/8228&quot;&gt;#8228&lt;/a&gt;) (Samuel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/149c055&quot;&gt;149c055&lt;/a&gt; Upgrade: mock-fs to v4.2.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8194&quot;&gt;#8194&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8243&quot;&gt;#8243&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a83bff9&quot;&gt;a83bff9&lt;/a&gt; Build: remove unneeded json config in demo (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8237&quot;&gt;#8237&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8242&quot;&gt;#8242&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6f05546&quot;&gt;6f05546&lt;/a&gt; Chore: convert StubModuleResolver in config tests to ES6 class (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8265&quot;&gt;#8265&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/63ca0c5&quot;&gt;63ca0c5&lt;/a&gt; Chore: use precalculated counts in stylish formatter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8251&quot;&gt;#8251&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e74ed6d&quot;&gt;e74ed6d&lt;/a&gt; Chore: convert Traverser to ES6 class (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7849&quot;&gt;#7849&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8232&quot;&gt;#8232&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b5e9788&quot;&gt;b5e9788&lt;/a&gt; Chore: rename &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; methods (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8225&quot;&gt;#8225&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.17.1 released</title>
    <link href="https://eslint.org/blog/2017/03/eslint-v3.17.1-released/"/>
    <updated>2017-03-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/03/eslint-v3.17.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f713f11&quot;&gt;f713f11&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/nonblock-statement-body-position&quot;&gt;nonblock-statement-body-position&lt;/a&gt; multiline error (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8202&quot;&gt;#8202&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8203&quot;&gt;#8203&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41e3d9c&quot;&gt;41e3d9c&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;&lt;code&gt;operator-assignment&lt;/code&gt;&lt;/a&gt; with parenthesized expression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8190&quot;&gt;#8190&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8197&quot;&gt;#8197&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8c8e6e&quot;&gt;f8c8e6e&lt;/a&gt; Build: change mock-fs path without SSH (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8207&quot;&gt;#8207&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8208&quot;&gt;#8208&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e3bca7&quot;&gt;5e3bca7&lt;/a&gt; Chore: add eslint-plugin-eslint-plugin (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8198&quot;&gt;#8198&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/580da36&quot;&gt;580da36&lt;/a&gt; Chore: add missing &lt;code&gt;output&lt;/code&gt; property to tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8195&quot;&gt;#8195&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.17.0 released</title>
    <link href="https://eslint.org/blog/2017/03/eslint-v3.17.0-released/"/>
    <updated>2017-03-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/03/eslint-v3.17.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Two new rules were added:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-compare-neg-zero&quot;&gt;no-compare-neg-zero&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/nonblock-statement-body-position&quot;&gt;nonblock-statement-body-position&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Two new methods were added to the &lt;code&gt;SourceCode&lt;/code&gt; API for rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#contextgetsourcecode&quot;&gt;&lt;code&gt;getLocFromIndex&lt;/code&gt; and &lt;code&gt;getIndexFromLoc&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Two enhancements were made to the &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-plugins#testing&quot;&gt;&lt;code&gt;RuleTester&lt;/code&gt;&lt;/a&gt; utility:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Error message assertions can now be regular expressions.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;output&lt;/code&gt; for a test case can be set to &lt;code&gt;null&lt;/code&gt; to assert that the case is not autofixed.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dad20ad&quot;&gt;dad20ad&lt;/a&gt; New: add SourceCode#getLocFromIndex and #getIndexFromLoc (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8073&quot;&gt;#8073&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8158&quot;&gt;#8158&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/20daea5&quot;&gt;20daea5&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/no-compare-neg-zero&quot;&gt;no-compare-neg-zero&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8091&quot;&gt;#8091&lt;/a&gt;) (薛定谔的猫)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/287e882&quot;&gt;287e882&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/nonblock-statement-body-position&quot;&gt;nonblock-statement-body-position&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6067&quot;&gt;#6067&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8108&quot;&gt;#8108&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ff42e8&quot;&gt;7ff42e8&lt;/a&gt; New: Allow regexes in RuleTester (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7837&quot;&gt;#7837&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8115&quot;&gt;#8115&lt;/a&gt;) (Daniel Lo Nigro)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fdf6d7&quot;&gt;4fdf6d7&lt;/a&gt; Update: deprecate &lt;code&gt;applyDefaultPatterns&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/line-comment-position&quot;&gt;&lt;code&gt;line-comment-position&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8183&quot;&gt;#8183&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf4d8cf&quot;&gt;bf4d8cf&lt;/a&gt; Update: ignore eslint comments in lines-arount-comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4345&quot;&gt;#4345&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8155&quot;&gt;#8155&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/18a519f&quot;&gt;18a519f&lt;/a&gt; Update: let RuleTester cases assert that no autofix occurs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8157&quot;&gt;#8157&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8163&quot;&gt;#8163&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ca1694b&quot;&gt;ca1694b&lt;/a&gt; Update: ignore negative ranges in fixes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8133&quot;&gt;#8133&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da8e8af&quot;&gt;da8e8af&lt;/a&gt; Update: include function name in report message if possible (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7260&quot;&gt;#7260&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8058&quot;&gt;#8058&lt;/a&gt;) (Dieter Luypaert)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25e5817&quot;&gt;25e5817&lt;/a&gt; Fix: Don’t autofix &lt;code&gt;+ +a&lt;/code&gt; to &lt;code&gt;++a&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/space-unary-ops&quot;&gt;space-unary-ops&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8176&quot;&gt;#8176&lt;/a&gt;) (Alan Pierce)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d02bd11&quot;&gt;d02bd11&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/padded-blocks&quot;&gt;padded-blocks&lt;/a&gt; autofix problems with comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8149&quot;&gt;#8149&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d35a81&quot;&gt;4d35a81&lt;/a&gt; Fix: Add a utility to avoid autofix conflicts (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7928&quot;&gt;#7928&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8026&quot;&gt;#8026&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8067&quot;&gt;#8067&lt;/a&gt;) (Alan Pierce)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ee5c27&quot;&gt;1ee5c27&lt;/a&gt; Fix: Make RuleTester handle empty-string cases gracefully (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8142&quot;&gt;#8142&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8143&quot;&gt;#8143&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e52cfc&quot;&gt;4e52cfc&lt;/a&gt; Fix: Improve &lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;keyword-spacing&lt;/a&gt; typescript support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8110&quot;&gt;#8110&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8111&quot;&gt;#8111&lt;/a&gt;) (Reyad Attiyat)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f91e32&quot;&gt;8f91e32&lt;/a&gt; Fix: &lt;code&gt;ignoreRestSiblings&lt;/code&gt; option didn’t cover arguments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8119&quot;&gt;#8119&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8120&quot;&gt;#8120&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a30eb8d&quot;&gt;a30eb8d&lt;/a&gt; Docs: improve documentation for RuleTester cases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8162&quot;&gt;#8162&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9994889&quot;&gt;9994889&lt;/a&gt; Docs: Add missing space to &lt;code&gt;create&lt;/code&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;&lt;code&gt;no-use-before-define&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8166&quot;&gt;#8166&lt;/a&gt;) (Justin Anastos)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4d542ba&quot;&gt;4d542ba&lt;/a&gt; Docs: Remove unneeded statement about autofix (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8164&quot;&gt;#8164&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/163d751&quot;&gt;163d751&lt;/a&gt; Docs: &lt;a href=&quot;https://eslint.org/docs/rules/lines-around-comment&quot;&gt;&lt;code&gt;lines-around-comment&lt;/code&gt;&lt;/a&gt; doesn’t disallow empty lines (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8151&quot;&gt;#8151&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/044bc10&quot;&gt;044bc10&lt;/a&gt; Docs: Add details about “–fix” option for “&lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;sort-imports&lt;/a&gt;” rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8077&quot;&gt;#8077&lt;/a&gt;) (Olivier Audard)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a6ce8f9&quot;&gt;a6ce8f9&lt;/a&gt; Build: Sort rules before dumping them to doc files (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8154&quot;&gt;#8154&lt;/a&gt;) (Danny Andrews)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cbd7ded&quot;&gt;cbd7ded&lt;/a&gt; Build: display rules’ meta data in their docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5774&quot;&gt;#5774&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8127&quot;&gt;#8127&lt;/a&gt;) (Wilson Kurniawan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0af9057&quot;&gt;0af9057&lt;/a&gt; Chore: Upgrade to a patched version of mock-fs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8177&quot;&gt;#8177&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8188&quot;&gt;#8188&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a78ec9f&quot;&gt;a78ec9f&lt;/a&gt; Chore: upgrade &lt;code&gt;coveralls&lt;/code&gt; to ^2.11.16 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8161&quot;&gt;#8161&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f1f4e5&quot;&gt;7f1f4e5&lt;/a&gt; Chore: remove unneeded devDeps &lt;code&gt;linefix&lt;/code&gt; and &lt;code&gt;gh-got&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8160&quot;&gt;#8160&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c84922&quot;&gt;1c84922&lt;/a&gt; Chore: upgrade eslint-plugin-node (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8156&quot;&gt;#8156&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.16.1 released</title>
    <link href="https://eslint.org/blog/2017/02/eslint-v3.16.1-released/"/>
    <updated>2017-02-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/02/eslint-v3.16.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff8a80c&quot;&gt;ff8a80c&lt;/a&gt; Fix: duplicated autofix output for inverted fix ranges (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8116&quot;&gt;#8116&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8117&quot;&gt;#8117&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a421897&quot;&gt;a421897&lt;/a&gt; Docs: fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;arrow-parens&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8132&quot;&gt;#8132&lt;/a&gt;) (Will Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9fa2559&quot;&gt;9fa2559&lt;/a&gt; Docs: Add missing &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;quotes&lt;/a&gt; in &lt;a href=&quot;https://eslint.org/docs/rules/key-spacing&quot;&gt;key-spacing&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8121&quot;&gt;#8121&lt;/a&gt;) (Glenn Reyes)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f3a6ced&quot;&gt;f3a6ced&lt;/a&gt; Build: package.json update for eslint-config-eslint release (ESLint Jenkins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/22d7fbf&quot;&gt;22d7fbf&lt;/a&gt; Chore: fix invalid redeclared variables in tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8130&quot;&gt;#8130&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d95598&quot;&gt;8d95598&lt;/a&gt; Chore: fix output assertion typos in rule tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8129&quot;&gt;#8129&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.16.0 released</title>
    <link href="https://eslint.org/blog/2017/02/eslint-v3.16.0-released/"/>
    <updated>2017-02-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/02/eslint-v3.16.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of some of the notable changes in this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;updated-token-iterator-methods&quot; tabindex=&quot;-1&quot;&gt;Updated Token Iterator Methods&lt;/h3&gt;
&lt;p&gt;This release includes an exciting update for rule authors! Many of the token iterator methods provided by &lt;code&gt;sourceCode&lt;/code&gt; have been updated with a new options parameter. Some highlights:&lt;/p&gt;
&lt;h4 id=&quot;includecomments&quot; tabindex=&quot;-1&quot;&gt;includeComments&lt;/h4&gt;
&lt;p&gt;Many of these methods can now include comments in the returned results using the &lt;code&gt;{ includeComments: true }&lt;/code&gt; option. The following methods are now deprecated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sourceCode.getTokenOrCommentBefore(node)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sourceCode.getTokenOrCommentAfter(node)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Instead, please use the following, respectively:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sourceCode.getTokenBefore(node, { includeComments: true })&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sourceCode.getTokenAfter(node, { includeComments: true })&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;filter&quot; tabindex=&quot;-1&quot;&gt;filter&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;filter&lt;/code&gt; option is a function that will filter the returned tokens. This allows for finding a specific token by type or value without having to create a loop.&lt;/p&gt;
&lt;p&gt;For instance, the following:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; token &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getTokenAfter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;token&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Keyword&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    token &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getTokenAfter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;token&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;can now be written as:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; token &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; sourceCode&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getTokenAfter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;node&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token parameter&quot;&gt;token&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; token&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Keyword&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The update includes other options as well! For more details, please read the &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules#contextgetsourcecode&quot;&gt;updated documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;performance-improvements&quot; tabindex=&quot;-1&quot;&gt;Performance Improvements&lt;/h3&gt;
&lt;p&gt;Performance improvements were made to both the initial processing of source code as well as to autofixing.&lt;/p&gt;
&lt;h3 id=&quot;autofixing&quot; tabindex=&quot;-1&quot;&gt;Autofixing&lt;/h3&gt;
&lt;p&gt;Autofix support was added to one rule:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-unused-labels&quot;&gt;no-unused-labels&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d89d0b4&quot;&gt;d89d0b4&lt;/a&gt; Update: fix &lt;a href=&quot;https://eslint.org/docs/rules/quotes&quot;&gt;quotes&lt;/a&gt; false negative for string literals as template tags (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8107&quot;&gt;#8107&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/360dbe4&quot;&gt;360dbe4&lt;/a&gt; Update: Improve error message when extend config missing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6115&quot;&gt;#6115&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8100&quot;&gt;#8100&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cfb65c5&quot;&gt;cfb65c5&lt;/a&gt; Update: make &lt;a href=&quot;https://eslint.org/docs/rules/no-lone-blocks&quot;&gt;no-lone-blocks&lt;/a&gt; report blocks in switch cases (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8047&quot;&gt;#8047&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8062&quot;&gt;#8062&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/290fb1f&quot;&gt;290fb1f&lt;/a&gt; Update: Add includeComments to getTokenByRangeStart (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8068&quot;&gt;#8068&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8069&quot;&gt;#8069&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acc3301&quot;&gt;acc3301&lt;/a&gt; Update: handle uncommon linebreaks consistently in rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7949&quot;&gt;#7949&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8049&quot;&gt;#8049&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90fd555&quot;&gt;90fd555&lt;/a&gt; Update: improve null detection in &lt;a href=&quot;https://eslint.org/docs/rules/eqeqeq&quot;&gt;eqeqeq&lt;/a&gt; for ES6 regexes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8020&quot;&gt;#8020&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8042&quot;&gt;#8042&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/834f45d&quot;&gt;834f45d&lt;/a&gt; Update: rewrite TokenStore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7810&quot;&gt;#7810&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7936&quot;&gt;#7936&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e3d4c6&quot;&gt;1e3d4c6&lt;/a&gt; Update: add fixer for &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-labels&quot;&gt;no-unused-labels&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7841&quot;&gt;#7841&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f47fb98&quot;&gt;f47fb98&lt;/a&gt; Update: ensure &lt;a href=&quot;https://eslint.org/docs/rules/semi-spacing&quot;&gt;semi-spacing&lt;/a&gt; checks import/export declarations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8033&quot;&gt;#8033&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e228d56&quot;&gt;e228d56&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-undefined&quot;&gt;no-undefined&lt;/a&gt; handles properties/classes/modules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7964&quot;&gt;#7964&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7966&quot;&gt;#7966&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/daf6f26&quot;&gt;daf6f26&lt;/a&gt; Fix: check output in RuleTester when errors is a number (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7640&quot;&gt;#7640&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8097&quot;&gt;#8097&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7516303&quot;&gt;7516303&lt;/a&gt; Fix: &lt;code&gt;sourceCode.getTokenAfter&lt;/code&gt; shouldn’t skip tokens after comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8055&quot;&gt;#8055&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c53e034&quot;&gt;c53e034&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/unicode-bom&quot;&gt;unicode-bom&lt;/a&gt; fixer insert BOM in appropriate location (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8083&quot;&gt;#8083&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8084&quot;&gt;#8084&lt;/a&gt;) (pantosha)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16248e2&quot;&gt;16248e2&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;no-extra-boolean-cast&lt;/a&gt; incorrect Boolean() autofixing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7977&quot;&gt;#7977&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8037&quot;&gt;#8037&lt;/a&gt;) (Jonathan Wilsson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14d146d&quot;&gt;14d146d&lt;/a&gt; Docs: Clarify --ext only works with directories (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7939&quot;&gt;#7939&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8095&quot;&gt;#8095&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/013a454&quot;&gt;013a454&lt;/a&gt; Docs: Add TSC meeting quorum requirement (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8086&quot;&gt;#8086&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6445d2a&quot;&gt;6445d2a&lt;/a&gt; Docs: Add documentation for /* exported */ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7998&quot;&gt;#7998&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8065&quot;&gt;#8065&lt;/a&gt;) (Lee Yi Min)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c596690&quot;&gt;c596690&lt;/a&gt; Docs: Clarify &lt;a href=&quot;https://eslint.org/docs/rules/generator-star-spacing&quot;&gt;generator-star-spacing&lt;/a&gt; config example (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/8027&quot;&gt;#8027&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8034&quot;&gt;#8034&lt;/a&gt;) (Hòa Trần)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a11d4a6&quot;&gt;a11d4a6&lt;/a&gt; Docs: fix a typo in shareable configs documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8036&quot;&gt;#8036&lt;/a&gt;) (Dan Homola)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c7e64f3&quot;&gt;c7e64f3&lt;/a&gt; Upgrade: mock-fs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8070&quot;&gt;#8070&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21be366&quot;&gt;21be366&lt;/a&gt; Chore: Ensuring eslint:recommended rules are sorted. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8106&quot;&gt;#8106&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f62a724&quot;&gt;f62a724&lt;/a&gt; Chore: use updated token iterator methods (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8103&quot;&gt;#8103&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff066dc&quot;&gt;ff066dc&lt;/a&gt; Chore: Incorrect source code test text (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8096&quot;&gt;#8096&lt;/a&gt;) (Jack Ford)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/55ac302&quot;&gt;55ac302&lt;/a&gt; Chore: fix the timing to define rules for tests (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8082&quot;&gt;#8082&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/591b74a&quot;&gt;591b74a&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/operator-linebreak&quot;&gt;operator-linebreak&lt;/a&gt; on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8064&quot;&gt;#8064&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fcc38db&quot;&gt;fcc38db&lt;/a&gt; Chore: simplify and improve performance for autofix (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8035&quot;&gt;#8035&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b04fde7&quot;&gt;b04fde7&lt;/a&gt; Chore: improve performance of SourceCode constructor (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8054&quot;&gt;#8054&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/329dcdc&quot;&gt;329dcdc&lt;/a&gt; Chore: unify checks for statement list parents (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8048&quot;&gt;#8048&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7bc92d9&quot;&gt;7bc92d9&lt;/a&gt; Chore: fix invalid test cases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8030&quot;&gt;#8030&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.15.0 released</title>
    <link href="https://eslint.org/blog/2017/02/eslint-v3.15.0-released/"/>
    <updated>2017-02-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/02/eslint-v3.15.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of some of the notable changes in this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;One new rule was added:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/template-tag-spacing&quot;&gt;&lt;code&gt;template-tag-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/09546a4&quot;&gt;09546a4&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/template-tag-spacing&quot;&gt;&lt;code&gt;template-tag-spacing&lt;/code&gt;&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7631&quot;&gt;#7631&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7913&quot;&gt;#7913&lt;/a&gt;) (Jonathan Wilsson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c59a0ba&quot;&gt;c59a0ba&lt;/a&gt; Update: add ignoreRestSiblings option to &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7968&quot;&gt;#7968&lt;/a&gt;) (Zack Argyle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fbd7c13&quot;&gt;fbd7c13&lt;/a&gt; Update: ensure &lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;operator-assignment&lt;/a&gt; handles exponentiation operators (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7970&quot;&gt;#7970&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5066ce&quot;&gt;c5066ce&lt;/a&gt; Update: add “variables” option to &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;no-use-before-define&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7111&quot;&gt;#7111&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7948&quot;&gt;#7948&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2a3580&quot;&gt;f2a3580&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;&lt;code&gt;no-extra-parens&lt;/code&gt;&lt;/a&gt; incorrect precedence (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7978&quot;&gt;#7978&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7999&quot;&gt;#7999&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6b6ba1&quot;&gt;d6b6ba1&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-var&quot;&gt;no-var&lt;/a&gt; should fix ForStatement.init (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7993&quot;&gt;#7993&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/42390fd&quot;&gt;42390fd&lt;/a&gt; Docs: update &lt;a href=&quot;http://readme.md/&quot;&gt;README.md&lt;/a&gt; for team (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8016&quot;&gt;#8016&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2be7e3&quot;&gt;f2be7e3&lt;/a&gt; Docs: Fix typo in &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;object-curly-newline&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8002&quot;&gt;#8002&lt;/a&gt;) (Danny Andrews)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df2351a&quot;&gt;df2351a&lt;/a&gt; Docs: Fix misleading section in &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt; documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7996&quot;&gt;#7996&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/99d386d&quot;&gt;99d386d&lt;/a&gt; Upgrade: Espree v3.4.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8019&quot;&gt;#8019&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d7ffd88&quot;&gt;d7ffd88&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/template-tag-spacing&quot;&gt;template-tag-spacing&lt;/a&gt; on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/8005&quot;&gt;#8005&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ae6e00&quot;&gt;5ae6e00&lt;/a&gt; Chore: avoid unnecessary feature detection for Symbol (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7992&quot;&gt;#7992&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d57c57&quot;&gt;5d57c57&lt;/a&gt; Chore: fix &lt;a href=&quot;https://eslint.org/docs/rules/no-else-return&quot;&gt;no-else-return&lt;/a&gt; lint error (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7986&quot;&gt;#7986&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7994&quot;&gt;#7994&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/62fb054&quot;&gt;62fb054&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/no-else-return&quot;&gt;no-else-return&lt;/a&gt; on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7986&quot;&gt;#7986&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5cdfa99&quot;&gt;5cdfa99&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/no-unneeded-ternary&quot;&gt;no-unneeded-ternary&lt;/a&gt; on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7987&quot;&gt;#7987&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.14.1 released</title>
    <link href="https://eslint.org/blog/2017/01/eslint-v3.14.1-released/"/>
    <updated>2017-01-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/01/eslint-v3.14.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/791f32b&quot;&gt;791f32b&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt; false positive for keyword method names (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7974&quot;&gt;#7974&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7980&quot;&gt;#7980&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/72d41f0&quot;&gt;72d41f0&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-var&quot;&gt;no-var&lt;/a&gt; autofix syntax error in single-line statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7961&quot;&gt;#7961&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7962&quot;&gt;#7962&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9e5b68&quot;&gt;b9e5b68&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; rule crash on sparse array with object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7959&quot;&gt;#7959&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7960&quot;&gt;#7960&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d7a0add&quot;&gt;d7a0add&lt;/a&gt; Docs: Add ESLint tutorial embed to getting started (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7971&quot;&gt;#7971&lt;/a&gt;) (Jamis Charles)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8bcbf5d&quot;&gt;8bcbf5d&lt;/a&gt; Docs: typo in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-promise-reject-errors&quot;&gt;prefer-promise-reject-errors&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7958&quot;&gt;#7958&lt;/a&gt;) (Patrick McElhaney)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7bd66a&quot;&gt;a7bd66a&lt;/a&gt; Chore: Adding assign/redeclare tests to &lt;a href=&quot;https://eslint.org/docs/rules/no-undefined&quot;&gt;no-undefined&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7964&quot;&gt;#7964&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7965&quot;&gt;#7965&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.14.0 released</title>
    <link href="https://eslint.org/blog/2017/01/eslint-v3.14.0-released/"/>
    <updated>2017-01-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/01/eslint-v3.14.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of some of the notable changes in this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;Two new rules were added:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-multi-assign&quot;&gt;&lt;code&gt;no-multi-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-promise-reject-errors&quot;&gt;&lt;code&gt;prefer-promise-reject-errors&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;autofixing&quot; tabindex=&quot;-1&quot;&gt;Autofixing&lt;/h3&gt;
&lt;p&gt;Autofix support was added to one rule:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-else-return&quot;&gt;&lt;code&gt;no-else-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05e7432&quot;&gt;05e7432&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/no-multi-assign&quot;&gt;&lt;code&gt;no-multi-assign&lt;/code&gt;&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6424&quot;&gt;#6424&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7904&quot;&gt;#7904&lt;/a&gt;) (Stewart Rand)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f091d95&quot;&gt;f091d95&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-promise-reject-errors&quot;&gt;&lt;code&gt;prefer-promise-reject-errors&lt;/code&gt;&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7685&quot;&gt;#7685&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7689&quot;&gt;#7689&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/243e47d&quot;&gt;243e47d&lt;/a&gt; Update: Add fixer for &lt;a href=&quot;https://eslint.org/docs/rules/no-else-return&quot;&gt;no-else-return&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7863&quot;&gt;#7863&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7864&quot;&gt;#7864&lt;/a&gt;) (Xander Dumaine)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a664e8a&quot;&gt;a664e8a&lt;/a&gt; Update: add ignoreJSX option to &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7444&quot;&gt;#7444&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7926&quot;&gt;#7926&lt;/a&gt;) (Robert Rossmann)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bd5e219&quot;&gt;bd5e219&lt;/a&gt; Update: ensure &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt; validates class bodies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7608&quot;&gt;#7608&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7871&quot;&gt;#7871&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/55f0cb6&quot;&gt;55f0cb6&lt;/a&gt; Update: refactor &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt; and fix inconsistencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7869&quot;&gt;#7869&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7870&quot;&gt;#7870&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/506324a&quot;&gt;506324a&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-var&quot;&gt;&lt;code&gt;no-var&lt;/code&gt;&lt;/a&gt; does not fix if causes ReferenceError (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7950&quot;&gt;#7950&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7953&quot;&gt;#7953&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ca01e00&quot;&gt;ca01e00&lt;/a&gt; Fix: recognize all line terminators in &lt;a href=&quot;https://eslint.org/docs/rules/func-call-spacing&quot;&gt;func-call-spacing&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7923&quot;&gt;#7923&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7924&quot;&gt;#7924&lt;/a&gt;) (Francesco Trotta)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ac3518&quot;&gt;8ac3518&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;no-useless-computed-key&lt;/a&gt; false positive with &lt;code&gt;__proto__&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7934&quot;&gt;#7934&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7e04b33&quot;&gt;7e04b33&lt;/a&gt; Fix: Ignore inline plugin rule config in autoconfig (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7860&quot;&gt;#7860&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7919&quot;&gt;#7919&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6448ba0&quot;&gt;6448ba0&lt;/a&gt; Fix: add parentheses in &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;no-extra-boolean-cast&lt;/a&gt; autofixer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7912&quot;&gt;#7912&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7914&quot;&gt;#7914&lt;/a&gt;) (Szymon Przybylski)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3f2094&quot;&gt;b3f2094&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt; crash with lone block statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7908&quot;&gt;#7908&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7909&quot;&gt;#7909&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/427543a&quot;&gt;427543a&lt;/a&gt; Fix: catastrophic backtracking in astUtils linebreak regex (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7893&quot;&gt;#7893&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7898&quot;&gt;#7898&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/995554c&quot;&gt;995554c&lt;/a&gt; Fix: Correct typos in &lt;a href=&quot;https://eslint.org/docs/rules/no-alert&quot;&gt;no-alert&lt;/a&gt;.md and lib/ast-utils.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7905&quot;&gt;#7905&lt;/a&gt;) (Stewart Rand)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c835e19&quot;&gt;c835e19&lt;/a&gt; Docs: remove reference to deleted rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7942&quot;&gt;#7942&lt;/a&gt;) (Alejandro Oviedo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c1e63b&quot;&gt;3c1e63b&lt;/a&gt; Docs: Improve examples for &lt;a href=&quot;https://eslint.org/docs/rules/no-case-declarations&quot;&gt;no-case-declarations&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6716&quot;&gt;#6716&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7920&quot;&gt;#7920&lt;/a&gt;) (Kevin Rangel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5eb2e88&quot;&gt;5eb2e88&lt;/a&gt; Docs: Correct typos in &lt;a href=&quot;http://configuring.md/&quot;&gt;configuring.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7916&quot;&gt;#7916&lt;/a&gt;) (Gabriel Delépine)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6150e3&quot;&gt;d6150e3&lt;/a&gt; Chore: Enable &lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; on ESLint codebase (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7725&quot;&gt;#7725&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7906&quot;&gt;#7906&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/075ec25&quot;&gt;075ec25&lt;/a&gt; Chore: update to use ES6 classes (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7849&quot;&gt;#7849&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7891&quot;&gt;#7891&lt;/a&gt;) (Claire Dranginis)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.13.1 released</title>
    <link href="https://eslint.org/blog/2017/01/eslint-v3.13.1-released/"/>
    <updated>2017-01-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/01/eslint-v3.13.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fc4e3f&quot;&gt;3fc4e3f&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt; reporting compound assignments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7881&quot;&gt;#7881&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7882&quot;&gt;#7882&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f90462e&quot;&gt;f90462e&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-label&quot;&gt;no-extra-label&lt;/a&gt; autofix should not remove labels used elsewhere (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7885&quot;&gt;#7885&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.13.0 released</title>
    <link href="https://eslint.org/blog/2017/01/eslint-v3.13.0-released/"/>
    <updated>2017-01-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2017/01/eslint-v3.13.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of some of the notable changes in this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;One new rule was added:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;prefer-destructuring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;autofixing&quot; tabindex=&quot;-1&quot;&gt;Autofixing&lt;/h3&gt;
&lt;p&gt;Autofix support was added to the following rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-extra-label&quot;&gt;no-extra-label&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-unneeded-ternary&quot;&gt;no-unneeded-ternary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/object-property-newline&quot;&gt;object-property-newline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/operator-linebreak&quot;&gt;operator-linebreak&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27424cb&quot;&gt;27424cb&lt;/a&gt; New: &lt;a href=&quot;https://eslint.org/docs/rules/prefer-destructuring&quot;&gt;&lt;code&gt;prefer-destructuring&lt;/code&gt;&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6053&quot;&gt;#6053&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7741&quot;&gt;#7741&lt;/a&gt;) (Alex LaFroscia)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd4c025&quot;&gt;cd4c025&lt;/a&gt; Update: add fixer for &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-label&quot;&gt;no-extra-label&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7840&quot;&gt;#7840&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9ba40a&quot;&gt;c9ba40a&lt;/a&gt; Update: add fixer for &lt;a href=&quot;https://eslint.org/docs/rules/no-unneeded-ternary&quot;&gt;&lt;code&gt;no-unneeded-ternary&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7540&quot;&gt;#7540&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd56d87&quot;&gt;dd56d87&lt;/a&gt; Update: add &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; option for arrow functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7564&quot;&gt;#7564&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7746&quot;&gt;#7746&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d80d994&quot;&gt;d80d994&lt;/a&gt; Update: add fixer for &lt;a href=&quot;https://eslint.org/docs/rules/object-property-newline&quot;&gt;object-property-newline&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7740&quot;&gt;#7740&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7808&quot;&gt;#7808&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1beecec&quot;&gt;1beecec&lt;/a&gt; Update: add fixer for &lt;a href=&quot;https://eslint.org/docs/rules/operator-linebreak&quot;&gt;&lt;code&gt;operator-linebreak&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7702&quot;&gt;#7702&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebcae1f&quot;&gt;ebcae1f&lt;/a&gt; Update: &lt;a href=&quot;https://eslint.org/docs/rules/no-return-await&quot;&gt;no-return-await&lt;/a&gt; with with complex &lt;code&gt;return&lt;/code&gt; argument (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7594&quot;&gt;#7594&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7595&quot;&gt;#7595&lt;/a&gt;) (Dalton Santos)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7d1dc7e&quot;&gt;7d1dc7e&lt;/a&gt; Update: Make &lt;a href=&quot;https://eslint.org/docs/rules/default-case&quot;&gt;default-case&lt;/a&gt; comment case-insensitive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7673&quot;&gt;#7673&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7742&quot;&gt;#7742&lt;/a&gt;) (Robert Rossmann)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aa75c92&quot;&gt;aa75c92&lt;/a&gt; Fix: Ensure &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;prefer-const&lt;/a&gt; fixes destructuring assignments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7852&quot;&gt;#7852&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7859&quot;&gt;#7859&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ca1f841&quot;&gt;ca1f841&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-return&quot;&gt;no-useless-return&lt;/a&gt; stack overflow on loops after throw (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7855&quot;&gt;#7855&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7856&quot;&gt;#7856&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf3ea3a&quot;&gt;bf3ea3a&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/capitalized-comments&quot;&gt;capitalized-comments&lt;/a&gt;: Ignore consec. comments if first is invalid (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7835&quot;&gt;#7835&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0fc24f7&quot;&gt;0fc24f7&lt;/a&gt; Fix: adapt new-paren rule so it handles TypeScript (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7817&quot;&gt;#7817&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7820&quot;&gt;#7820&lt;/a&gt;) (Philipp A)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df0b06b&quot;&gt;df0b06b&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-multiple-empty-lines&quot;&gt;no-multiple-empty-lines&lt;/a&gt; perf issue on large files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7803&quot;&gt;#7803&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7843&quot;&gt;#7843&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2322733&quot;&gt;2322733&lt;/a&gt; Fix: Throw error if ruletester is missing required test scenarios (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7388&quot;&gt;#7388&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5c3b21&quot;&gt;c5c3b21&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-implied-eval&quot;&gt;no-implied-eval&lt;/a&gt; false positive on ‘setTimeoutFoo’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7821&quot;&gt;#7821&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7836&quot;&gt;#7836&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd4cd3b&quot;&gt;fd4cd3b&lt;/a&gt; Fix: Disable &lt;a href=&quot;https://eslint.org/docs/rules/no-var&quot;&gt;no-var&lt;/a&gt; autofixer in some incorrect cases in loops (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7811&quot;&gt;#7811&lt;/a&gt;) (Alan Pierce)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f20b9e9&quot;&gt;f20b9e9&lt;/a&gt; Fix: Relax &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;no-useless-escape&lt;/a&gt;’s handling of ‘]’ in regexes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7789&quot;&gt;#7789&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7793&quot;&gt;#7793&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3004c1e&quot;&gt;3004c1e&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/consistent-return&quot;&gt;consistent-return&lt;/a&gt; shouldn’t report class constructors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7790&quot;&gt;#7790&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7797&quot;&gt;#7797&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/428fbdf&quot;&gt;428fbdf&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/func-call-spacing&quot;&gt;func-call-spacing&lt;/a&gt; “never” doesn’t fix w/ line breaks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7787&quot;&gt;#7787&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7788&quot;&gt;#7788&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e61070&quot;&gt;6e61070&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;&lt;code&gt;semi&lt;/code&gt;&lt;/a&gt; false positive before regex/template literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7782&quot;&gt;#7782&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7783&quot;&gt;#7783&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff0c050&quot;&gt;ff0c050&lt;/a&gt; Fix: remove internal property from config generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7758&quot;&gt;#7758&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7761&quot;&gt;#7761&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c3a962&quot;&gt;8c3a962&lt;/a&gt; Fix: syntax errors from &lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;object-shorthand&lt;/a&gt; autofix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7744&quot;&gt;#7744&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7745&quot;&gt;#7745&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fbafdc0&quot;&gt;fbafdc0&lt;/a&gt; Docs: &lt;a href=&quot;https://eslint.org/docs/rules/padded-blocks&quot;&gt;&lt;code&gt;padded-blocks&lt;/code&gt;&lt;/a&gt; &lt;code&gt;never&lt;/code&gt; case (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7868&quot;&gt;#7868&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7878&quot;&gt;#7878&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf45893&quot;&gt;bf45893&lt;/a&gt; Docs: Clarify that we only support Stage 4 proposals (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7845&quot;&gt;#7845&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7122205&quot;&gt;7122205&lt;/a&gt; Docs: Array destructuring example for &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7838&quot;&gt;#7838&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7839&quot;&gt;#7839&lt;/a&gt;) (Remco Haszing)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f25834&quot;&gt;1f25834&lt;/a&gt; Docs: update outdated info in Architecture page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7816&quot;&gt;#7816&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b938f1f&quot;&gt;b938f1f&lt;/a&gt; Docs: Add an example for the spread operator to &lt;a href=&quot;https://eslint.org/docs/rules/prefer-spread&quot;&gt;prefer-spread&lt;/a&gt;.md (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7802&quot;&gt;#7802&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7804&quot;&gt;#7804&lt;/a&gt;) (butlermd)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8ce2dc&quot;&gt;b8ce2dc&lt;/a&gt; Docs: Remove .html extensions from links in developer-guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7805&quot;&gt;#7805&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aafebb2&quot;&gt;aafebb2&lt;/a&gt; Docs: Wrap placeholder sample in raw (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7798&quot;&gt;#7798&lt;/a&gt;) (Daniel Lo Nigro)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb648ce&quot;&gt;bb648ce&lt;/a&gt; Docs: fix unclear example for &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;no-useless-escape&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7781&quot;&gt;#7781&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b296a2&quot;&gt;8b296a2&lt;/a&gt; Docs: fix in &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;semi&lt;/a&gt;.md: correct instead of incorrect (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7779&quot;&gt;#7779&lt;/a&gt;) (German Prostakov)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3493241&quot;&gt;3493241&lt;/a&gt; Upgrade: strip-json-comments ~v2.0.1 (Janus Troelsen)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4008022&quot;&gt;4008022&lt;/a&gt; Chore: Refactor to use ES6 Classes (Part 3)(refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7849&quot;&gt;#7849&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7865&quot;&gt;#7865&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/616611a&quot;&gt;616611a&lt;/a&gt; Chore: Refactor to use ES6 Classes (Part 2)(refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7849&quot;&gt;#7849&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7847&quot;&gt;#7847&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/856084b&quot;&gt;856084b&lt;/a&gt; Chore: Refactor to use ES6 Classes (Part 1)(refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7849&quot;&gt;#7849&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7846&quot;&gt;#7846&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/18fa521&quot;&gt;18fa521&lt;/a&gt; Chore: use ast-utils helper functions in &lt;a href=&quot;https://eslint.org/docs/rules/no-multiple-empty-lines&quot;&gt;no-multiple-empty-lines&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7842&quot;&gt;#7842&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e21b36b&quot;&gt;e21b36b&lt;/a&gt; Chore: add integration tests for cache files (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7748&quot;&gt;#7748&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7794&quot;&gt;#7794&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/00dd96c&quot;&gt;00dd96c&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/array-bracket-spacing&quot;&gt;array-bracket-spacing&lt;/a&gt; on ESLint codebase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7830&quot;&gt;#7830&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb6b73b&quot;&gt;bb6b73b&lt;/a&gt; Chore: replace unnecessary function callbacks with arrow functions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7795&quot;&gt;#7795&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/75b7ba4&quot;&gt;75b7ba4&lt;/a&gt; Chore: enable &lt;a href=&quot;https://eslint.org/docs/rules/object-curly-spacing&quot;&gt;object-curly-spacing&lt;/a&gt; on ESLint codebase (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7725&quot;&gt;#7725&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7770&quot;&gt;#7770&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f1bf5ec&quot;&gt;f1bf5ec&lt;/a&gt; Chore: convert remaining old-style context.report() calls to the new API (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7763&quot;&gt;#7763&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.12.2 released</title>
    <link href="https://eslint.org/blog/2016/12/eslint-v3.12.2-released/"/>
    <updated>2016-12-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/12/eslint-v3.12.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dec3ec6&quot;&gt;dec3ec6&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; bug with AssignmentExpressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7747&quot;&gt;#7747&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7750&quot;&gt;#7750&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/639b798&quot;&gt;639b798&lt;/a&gt; Docs: Use &lt;code&gt;Object.prototype&lt;/code&gt; in examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7755&quot;&gt;#7755&lt;/a&gt;) (Alex Reardon)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5344751&quot;&gt;5344751&lt;/a&gt; Build: Don’t create blogpost links from rule names within other words (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7754&quot;&gt;#7754&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.12.1 released</title>
    <link href="https://eslint.org/blog/2016/12/eslint-v3.12.1-released/"/>
    <updated>2016-12-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/12/eslint-v3.12.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0ad4d33&quot;&gt;0ad4d33&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; regression with function calls (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7732&quot;&gt;#7732&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7733&quot;&gt;#7733&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7734&quot;&gt;#7734&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab246dd&quot;&gt;ab246dd&lt;/a&gt; Docs: Rules restricting globals/properties/syntax are linked together (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7743&quot;&gt;#7743&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df2f115&quot;&gt;df2f115&lt;/a&gt; Docs: Add eslint-config-mdcs to JSCS Migration Guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7737&quot;&gt;#7737&lt;/a&gt;) (Joshua Koo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b77333&quot;&gt;4b77333&lt;/a&gt; Build: avoid creating broken rule links in the changelog (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7731&quot;&gt;#7731&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.12.0 released</title>
    <link href="https://eslint.org/blog/2016/12/eslint-v3.12.0-released/"/>
    <updated>2016-12-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/12/eslint-v3.12.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of some of the notable changes in this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;additional-apis&quot; tabindex=&quot;-1&quot;&gt;Additional APIs&lt;/h3&gt;
&lt;p&gt;This version includes the addition of three new API methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;getRules&lt;/code&gt; to &lt;code&gt;linter&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;version&lt;/code&gt; to &lt;code&gt;linter&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;version&lt;/code&gt; to &lt;code&gt;CLIEngine&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Apologies for the lack of clear documentation on the above - our API documentation needs an overhaul, and we plan on updating this in the near future.&lt;/p&gt;
&lt;h3 id=&quot;new-option-for-eslint---init&quot; tabindex=&quot;-1&quot;&gt;New option for &lt;code&gt;eslint --init&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;This version adds the ability to pick the &lt;code&gt;airbnb-base&lt;/code&gt; config without &lt;code&gt;eslint-plugin-react&lt;/code&gt;, for those who want to follow the Airbnb styleguide but do not use React.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;One new rule was added:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-await-in-loop&quot;&gt;no-await-in-loop&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;autofixing&quot; tabindex=&quot;-1&quot;&gt;Autofixing&lt;/h3&gt;
&lt;p&gt;Autofix support was added to the following rule:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/capitalized-comments&quot;&gt;capitalized-comments&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d0d61d&quot;&gt;1d0d61d&lt;/a&gt; New: Add &lt;a href=&quot;https://eslint.org/docs/rules/no-await-in-loop&quot;&gt;no-await-in-loop&lt;/a&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7563&quot;&gt;#7563&lt;/a&gt;) (Nat Mote)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2cdfb4e&quot;&gt;2cdfb4e&lt;/a&gt; New: Additional APIs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6256&quot;&gt;#6256&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7669&quot;&gt;#7669&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e569225&quot;&gt;e569225&lt;/a&gt; Update: fix false positive/negative of &lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;yoda&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7676&quot;&gt;#7676&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7695&quot;&gt;#7695&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4278c42&quot;&gt;4278c42&lt;/a&gt; Update: make &lt;a href=&quot;https://eslint.org/docs/rules/no-obj-calls&quot;&gt;no-obj-calls&lt;/a&gt; report errors for Reflect (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7700&quot;&gt;#7700&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7710&quot;&gt;#7710&lt;/a&gt;) (Tomas Echeverri Valencia)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b921d1f&quot;&gt;b921d1f&lt;/a&gt; Update: add &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/a&gt; options for array and object literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7473&quot;&gt;#7473&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7681&quot;&gt;#7681&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7079c89&quot;&gt;7079c89&lt;/a&gt; Update: Add airbnb-base to init styleguides (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6986&quot;&gt;#6986&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7699&quot;&gt;#7699&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8786fb&quot;&gt;f8786fb&lt;/a&gt; Update: add fixer for &lt;a href=&quot;https://eslint.org/docs/rules/capitalized-comments&quot;&gt;&lt;code&gt;capitalized-comments&lt;/code&gt;&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7701&quot;&gt;#7701&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e95a230&quot;&gt;e95a230&lt;/a&gt; Fix: &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt; “first” option false positive on nested arrays (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7727&quot;&gt;#7727&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7728&quot;&gt;#7728&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/81f9e7d&quot;&gt;81f9e7d&lt;/a&gt; Fix: Allow duplicated let declarations in &lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;&lt;code&gt;prefer-const&lt;/code&gt;&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7712&quot;&gt;#7712&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7717&quot;&gt;#7717&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/abfd24f&quot;&gt;abfd24f&lt;/a&gt; Fix: don’t validate schemas for disabled rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7690&quot;&gt;#7690&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7692&quot;&gt;#7692&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a2a7fd&quot;&gt;0a2a7fd&lt;/a&gt; Fix: Allow &#92;u2028 and &#92;u2029 as string escapes in &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;no-useless-escape&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7672&quot;&gt;#7672&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4742d82&quot;&gt;4742d82&lt;/a&gt; Docs: clarify the default behavior of &lt;a href=&quot;https://eslint.org/docs/rules/operator-linebreak&quot;&gt;&lt;code&gt;operator-linebreak&lt;/code&gt;&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7459&quot;&gt;#7459&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7726&quot;&gt;#7726&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/63bb3f8&quot;&gt;63bb3f8&lt;/a&gt; Docs: improve the documentation for the autofix API (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7716&quot;&gt;#7716&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90a5d29&quot;&gt;90a5d29&lt;/a&gt; Docs: Remove incorrect info about issue requirements from PR guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7691&quot;&gt;#7691&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f80c278&quot;&gt;f80c278&lt;/a&gt; Docs: Add sails-hook-lint to integrations list (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7679&quot;&gt;#7679&lt;/a&gt;) (Anthony M)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e96da3f&quot;&gt;e96da3f&lt;/a&gt; Docs: link first instance of &lt;code&gt;package.json&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7684&quot;&gt;#7684&lt;/a&gt;) (Kent C. Dodds)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b30116c&quot;&gt;b30116c&lt;/a&gt; Docs: Fix code-blocks in &lt;a href=&quot;https://eslint.org/docs/rules/spaced-comment&quot;&gt;spaced-comment&lt;/a&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7524&quot;&gt;#7524&lt;/a&gt;) (Michał Gołębiowski)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/76c33a9&quot;&gt;76c33a9&lt;/a&gt; Docs: Change Sails.js integration to active npm package (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7675&quot;&gt;#7675&lt;/a&gt;) (Anthony M)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ac07d8&quot;&gt;2ac07d8&lt;/a&gt; Upgrade: Update globals dependency to 9.14.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7683&quot;&gt;#7683&lt;/a&gt;) (Aleksandr Oleynikov)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf20e20&quot;&gt;bf20e20&lt;/a&gt; Build: include links to rule pages in release blogpost (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7671&quot;&gt;#7671&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8489e2&quot;&gt;a8489e2&lt;/a&gt; Chore: Avoid parserOptions boilerplate in tests for ES6 rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7724&quot;&gt;#7724&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.11.1 released</title>
    <link href="https://eslint.org/blog/2016/11/eslint-v3.11.1-released/"/>
    <updated>2016-11-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/11/eslint-v3.11.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/be739d0&quot;&gt;be739d0&lt;/a&gt; Fix: capitalized-comments fatal error fixed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7663&quot;&gt;#7663&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7664&quot;&gt;#7664&lt;/a&gt;) (Rich Trott)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc4cedc&quot;&gt;cc4cedc&lt;/a&gt; Docs: Fix a typo in array-bracket-spacing documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7667&quot;&gt;#7667&lt;/a&gt;) (Alex Guerrero)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8adadc&quot;&gt;f8adadc&lt;/a&gt; Docs: fix a typo in capitalized-comments documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7666&quot;&gt;#7666&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.11.0 released</title>
    <link href="https://eslint.org/blog/2016/11/eslint-v3.11.0-released/"/>
    <updated>2016-11-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/11/eslint-v3.11.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of some of the notable changes in this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;Two new rules were added:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/capitalized-comments&quot;&gt;&lt;code&gt;capitalized-comments&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/require-await&quot;&gt;&lt;code&gt;require-await&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;more-autofixing&quot; tabindex=&quot;-1&quot;&gt;More Autofixing&lt;/h3&gt;
&lt;p&gt;Autofix support was added to two rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/operator-assignment&quot;&gt;&lt;code&gt;operator-assignment&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad56694&quot;&gt;ad56694&lt;/a&gt; New: capitalized-comments rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6055&quot;&gt;#6055&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7415&quot;&gt;#7415&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89bd8de&quot;&gt;89bd8de&lt;/a&gt; New: &lt;code&gt;require-await&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6820&quot;&gt;#6820&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7435&quot;&gt;#7435&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7185567&quot;&gt;7185567&lt;/a&gt; Update: add fixer for &lt;code&gt;operator-assignment&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7517&quot;&gt;#7517&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/faf5f56&quot;&gt;faf5f56&lt;/a&gt; Update: fix false negative of &lt;code&gt;quotes&lt;/code&gt; with &#92;n in template (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7646&quot;&gt;#7646&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7647&quot;&gt;#7647&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/474e444&quot;&gt;474e444&lt;/a&gt; Update: add fixer for &lt;code&gt;sort-imports&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7535&quot;&gt;#7535&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d50f6c1&quot;&gt;d50f6c1&lt;/a&gt; Fix: incorrect location for &lt;code&gt;no-useless-escape&lt;/code&gt; errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7643&quot;&gt;#7643&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7645&quot;&gt;#7645&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5c9a4ad&quot;&gt;5c9a4ad&lt;/a&gt; Fix: Prevent &lt;code&gt;quotes&lt;/code&gt; from fixing templates to directives (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7610&quot;&gt;#7610&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7617&quot;&gt;#7617&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9b70b3&quot;&gt;f9b70b3&lt;/a&gt; Docs: Enable example highlighting in rules examples (ref &lt;a href=&quot;https://github.com/eslint/eslint/issues/6444&quot;&gt;#6444&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7644&quot;&gt;#7644&lt;/a&gt;) (Alex Guerrero)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54a993c&quot;&gt;54a993c&lt;/a&gt; Docs: Fix a typo in the &lt;a href=&quot;http://require-yield.md/&quot;&gt;require-yield.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7652&quot;&gt;#7652&lt;/a&gt;) (Vse Mozhet Byt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/32a3547&quot;&gt;32a3547&lt;/a&gt; Docs: Add absent quotes in rules documentation (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7625&quot;&gt;#7625&lt;/a&gt;) (Denis Sikuler)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/07124d1&quot;&gt;07124d1&lt;/a&gt; Docs: add missing quote mark (+=&amp;quot; → “+=”) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7613&quot;&gt;#7613&lt;/a&gt;) (Sean Juarez)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8998043&quot;&gt;8998043&lt;/a&gt; Docs: fix wording in docs for no-extra-parens config (Michael Ficarra)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d90ca46&quot;&gt;d90ca46&lt;/a&gt; Upgrade: Update markdownlint dependency to 0.3.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7589&quot;&gt;#7589&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7592&quot;&gt;#7592&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eadd808&quot;&gt;eadd808&lt;/a&gt; Chore: Fix prefer-arrow-callback lint errors (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7651&quot;&gt;#7651&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7432bd&quot;&gt;b7432bd&lt;/a&gt; Chore: Ensure JS files are checked out with LF (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7624&quot;&gt;#7624&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.10.2 released</title>
    <link href="https://eslint.org/blog/2016/11/eslint-v3.10.2-released/"/>
    <updated>2016-11-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/11/eslint-v3.10.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0643bfe&quot;&gt;0643bfe&lt;/a&gt; Fix: correctly handle commented code in &lt;code&gt;indent&lt;/code&gt; autofixer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7604&quot;&gt;#7604&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7606&quot;&gt;#7606&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bd0514c&quot;&gt;bd0514c&lt;/a&gt; Fix: syntax error after &lt;code&gt;key-spacing&lt;/code&gt; autofix with comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7603&quot;&gt;#7603&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7607&quot;&gt;#7607&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f56c1ef&quot;&gt;f56c1ef&lt;/a&gt; Fix: &lt;code&gt;indent&lt;/code&gt; crash on parenthesized global return values (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7573&quot;&gt;#7573&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7596&quot;&gt;#7596&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/100c6e1&quot;&gt;100c6e1&lt;/a&gt; Docs: Fix example for curly “multi-or-nest” option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7597&quot;&gt;#7597&lt;/a&gt;) (Will Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6abb534&quot;&gt;6abb534&lt;/a&gt; Docs: Update code of conduct link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7599&quot;&gt;#7599&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8302cdb&quot;&gt;8302cdb&lt;/a&gt; Docs: Update no-tabs to match existing standards &amp;amp; improve readbility (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7590&quot;&gt;#7590&lt;/a&gt;) (Matt Stow)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.10.1 released</title>
    <link href="https://eslint.org/blog/2016/11/eslint-v3.10.1-released/"/>
    <updated>2016-11-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/11/eslint-v3.10.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8a0e92a&quot;&gt;8a0e92a&lt;/a&gt; Fix: handle try/catch correctly in &lt;code&gt;no-return-await&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7581&quot;&gt;#7581&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7582&quot;&gt;#7582&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4dd015&quot;&gt;c4dd015&lt;/a&gt; Fix: no-useless-return stack overflow on unreachable loops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7583&quot;&gt;#7583&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7584&quot;&gt;#7584&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.10.0 released</title>
    <link href="https://eslint.org/blog/2016/11/eslint-v3.10.0-released/"/>
    <updated>2016-11-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/11/eslint-v3.10.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of some of the notable changes in this version of ESLint.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One new rule, &lt;a href=&quot;https://eslint.org/docs/rules/no-return-await&quot;&gt;&lt;code&gt;no-return-await&lt;/code&gt;&lt;/a&gt;, was added.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-extra-boolean-cast&quot;&gt;&lt;code&gt;no-extra-boolean-cast&lt;/code&gt;&lt;/a&gt; gained auto-fix functionality.&lt;/li&gt;
&lt;li&gt;Certain cases caught by &lt;a href=&quot;https://eslint.org/docs/rules/eqeqeq&quot;&gt;&lt;code&gt;eqeqeq&lt;/code&gt;&lt;/a&gt; can now be auto-fixed.&lt;/li&gt;
&lt;li&gt;New options were added to &lt;a href=&quot;https://eslint.org/docs/rules/comma-style&quot;&gt;&lt;code&gt;comma-style&lt;/code&gt;&lt;/a&gt; to check function parameters, function arguments, imports, and destructuring.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/func-names&quot;&gt;&lt;code&gt;func-names&lt;/code&gt;&lt;/a&gt; gained a new option to recognize ES6 inferred names.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66fe9ff&quot;&gt;66fe9ff&lt;/a&gt; New: &lt;code&gt;no-return-await&lt;/code&gt; rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7537&quot;&gt;#7537&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7547&quot;&gt;#7547&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ee039b&quot;&gt;7ee039b&lt;/a&gt; Update: Add comma-style options for calls, fns, imports (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7470&quot;&gt;#7470&lt;/a&gt;) (Max Englander)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c3f4809&quot;&gt;c3f4809&lt;/a&gt; Update: Allow &lt;code&gt;func-names&lt;/code&gt; to recognize inferred ES6 names (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7235&quot;&gt;#7235&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7244&quot;&gt;#7244&lt;/a&gt;) (Logan Smyth)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2bd1dd7&quot;&gt;2bd1dd7&lt;/a&gt; Update: avoid creating extra whitespace in &lt;code&gt;arrow-body-style&lt;/code&gt; fixer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7504&quot;&gt;#7504&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5003b1c&quot;&gt;5003b1c&lt;/a&gt; Update: fix in/instanceof handling with &lt;code&gt;space-infix-ops&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7525&quot;&gt;#7525&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7552&quot;&gt;#7552&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1766524&quot;&gt;1766524&lt;/a&gt; Update: “Error type should be” assertion in rule-tester (fixes 6106) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7550&quot;&gt;#7550&lt;/a&gt;) (Frans Jaspers)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c379ff&quot;&gt;3c379ff&lt;/a&gt; Update: &lt;code&gt;no-restricted-{imports,modules}&lt;/code&gt;: add “patterns” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6963&quot;&gt;#6963&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7433&quot;&gt;#7433&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af1fde1&quot;&gt;af1fde1&lt;/a&gt; Update: fix &lt;code&gt;brace-style&lt;/code&gt; false negative on multiline node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7493&quot;&gt;#7493&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7496&quot;&gt;#7496&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3798aea&quot;&gt;3798aea&lt;/a&gt; Update: max-statements to report function name (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7260&quot;&gt;#7260&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7399&quot;&gt;#7399&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c215fa&quot;&gt;0c215fa&lt;/a&gt; Update: Add &lt;code&gt;ArrowFunctionExpression&lt;/code&gt; support to &lt;code&gt;require-jsdoc&lt;/code&gt; rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7518&quot;&gt;#7518&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8a3e717&quot;&gt;8a3e717&lt;/a&gt; Update: Fix &lt;code&gt;lines-around-directive&lt;/code&gt; semicolon handling (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7450&quot;&gt;#7450&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7483&quot;&gt;#7483&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e58cead&quot;&gt;e58cead&lt;/a&gt; Update: add a fixer for certain statically-verifiable &lt;code&gt;eqeqeq&lt;/code&gt; cases (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7389&quot;&gt;#7389&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/36338f0&quot;&gt;36338f0&lt;/a&gt; Update: add fixer for &lt;code&gt;no-extra-boolean-cast&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7387&quot;&gt;#7387&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8d6e48&quot;&gt;b8d6e48&lt;/a&gt; Fix: syntax errors created by &lt;code&gt;object-shorthand&lt;/code&gt; autofix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7574&quot;&gt;#7574&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7575&quot;&gt;#7575&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d60db7&quot;&gt;0d60db7&lt;/a&gt; Fix: Curly rule doesn’t account for leading comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7538&quot;&gt;#7538&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7539&quot;&gt;#7539&lt;/a&gt;) (Will Chen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c0f4937&quot;&gt;c0f4937&lt;/a&gt; Fix: &lt;code&gt;arrow-parens&lt;/code&gt; supports type annotations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7406&quot;&gt;#7406&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7436&quot;&gt;#7436&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4613ba0&quot;&gt;4613ba0&lt;/a&gt; Fix: Add support for escape char in JSX. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7461&quot;&gt;#7461&lt;/a&gt;) (Scott Stern)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea0970d&quot;&gt;ea0970d&lt;/a&gt; Fix: &lt;code&gt;curly&lt;/code&gt; false positive with no-semicolon style (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7509&quot;&gt;#7509&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e6131e&quot;&gt;3e6131e&lt;/a&gt; Docs: explain config option merging (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7499&quot;&gt;#7499&lt;/a&gt;) (Danny Andrews)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/44eb274&quot;&gt;44eb274&lt;/a&gt; Docs: Missing semicolon report was missing a comma (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7553&quot;&gt;#7553&lt;/a&gt;) (James)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6dbda15&quot;&gt;6dbda15&lt;/a&gt; Docs: Document the optional defaults argument for RuleTester (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7548&quot;&gt;#7548&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e117b80&quot;&gt;e117b80&lt;/a&gt; Docs: typo fix (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7546&quot;&gt;#7546&lt;/a&gt;) (oprogramador)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a838b8e&quot;&gt;a838b8e&lt;/a&gt; Docs: &lt;code&gt;func-name-matching&lt;/code&gt;: update with “always”/“never” option (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7536&quot;&gt;#7536&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f5764ee&quot;&gt;f5764ee&lt;/a&gt; Docs: Update example of results returned from &lt;code&gt;executeOnFiles&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7362&quot;&gt;#7362&lt;/a&gt;) (Simen Bekkhus)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7f3976&quot;&gt;a7f3976&lt;/a&gt; Docs: Specify min ESLint version for new rule format (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7501&quot;&gt;#7501&lt;/a&gt;) (cowchimp)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f1fa67&quot;&gt;4f1fa67&lt;/a&gt; Docs: Update copyright (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7497&quot;&gt;#7497&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/578c373&quot;&gt;578c373&lt;/a&gt; Build: handle deprecated rules with no ‘replacedBy’ (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7471&quot;&gt;#7471&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7494&quot;&gt;#7494&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/670e060&quot;&gt;670e060&lt;/a&gt; Chore: make the &lt;code&gt;object-shorthand&lt;/code&gt; tests more readable (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7580&quot;&gt;#7580&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b3b65c&quot;&gt;1b3b65c&lt;/a&gt; Chore: ensure that files in tests/conf are linted (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7579&quot;&gt;#7579&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/759525e&quot;&gt;759525e&lt;/a&gt; Chore: Use process.exitCode instead of process.exit() in bin/eslint.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7569&quot;&gt;#7569&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25e5613&quot;&gt;25e5613&lt;/a&gt; Chore: Remove incorrect test from indent.js. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7531&quot;&gt;#7531&lt;/a&gt;) (Scott Stern)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0dea0ac&quot;&gt;0dea0ac&lt;/a&gt; Chore: Add Node 7 to travis ci build (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7506&quot;&gt;#7506&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/183def6&quot;&gt;183def6&lt;/a&gt; Chore: enable &lt;code&gt;prefer-arrow-callback&lt;/code&gt; on ESLint codebase (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7503&quot;&gt;#7503&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.9.1 released</title>
    <link href="https://eslint.org/blog/2016/10/eslint-v3.9.1-released/"/>
    <updated>2016-10-31T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/10/eslint-v3.9.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2012258&quot;&gt;2012258&lt;/a&gt; Fix: incorrect &lt;code&gt;indent&lt;/code&gt; check for array property access (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7484&quot;&gt;#7484&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7485&quot;&gt;#7485&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8a71d4a&quot;&gt;8a71d4a&lt;/a&gt; Fix: &lt;code&gt;no-useless-return&lt;/code&gt; false positive on conditionals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7477&quot;&gt;#7477&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7482&quot;&gt;#7482&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/56a662b&quot;&gt;56a662b&lt;/a&gt; Fix: allow escaped backreferences in &lt;code&gt;no-useless-escape&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7472&quot;&gt;#7472&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7474&quot;&gt;#7474&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ba68a3&quot;&gt;8ba68a3&lt;/a&gt; Docs: Update broken link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7490&quot;&gt;#7490&lt;/a&gt;) (Devinsuit)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/65231d8&quot;&gt;65231d8&lt;/a&gt; Docs: add the “fixable” icon for &lt;code&gt;no-useless-return&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7480&quot;&gt;#7480&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fffdf13&quot;&gt;fffdf13&lt;/a&gt; Build: Fix prefer-reflect rule to not crash site gen build (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7471&quot;&gt;#7471&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.9.0 released</title>
    <link href="https://eslint.org/blog/2016/10/eslint-v3.9.0-released/"/>
    <updated>2016-10-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/10/eslint-v3.9.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This release includes some exciting new features, including a new results formatter and the ability for ESLint to support enhanced parsers!&lt;/p&gt;
&lt;h3 id=&quot;new-formatter&quot; tabindex=&quot;-1&quot;&gt;New formatter&lt;/h3&gt;
&lt;p&gt;As part of our continuing effort to support our users coming from JSCS, we’re excited to release the new &lt;a href=&quot;https://eslint.org/docs/user-guide/formatters/#codeframe&quot;&gt;codeframe&lt;/a&gt; formatter!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;error: Missing semicolon (semi) at file.js:1:13:
&amp;gt; 1 | var a = true
    |             ^
  2 |
  3 |


warning: There should be no space after &#39;{&#39; (object-curly-spacing) at file2.js:1:9:
&amp;gt; 1 | var b = { c: true};
    |         ^
  2 |
  3 |


1 error and 1 warning found.
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;enhanced-parsers&quot; tabindex=&quot;-1&quot;&gt;Enhanced parsers&lt;/h3&gt;
&lt;p&gt;ESLint now supports enhanced parsers, which allows parsers to provide ESLint-specific services and functionality. This allows ESLint to support added functionality such as parsing type checkers.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-useless-return&quot;&gt;no-useless-return&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;new-rule-options&quot; tabindex=&quot;-1&quot;&gt;New Rule Options&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/func-name-matching&quot;&gt;func-name-matching&lt;/a&gt;: &lt;code&gt;nameMatches&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt;: &lt;code&gt;CallExpression&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/max-len&quot;&gt;max-len&lt;/a&gt;: &lt;code&gt;ignoreRegExpLiterals&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;new-autofixing&quot; tabindex=&quot;-1&quot;&gt;New autofixing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/arrow-body-style&quot;&gt;arrow-body-style&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/newline-after-var&quot;&gt;newline-after-var&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;deprecated-rules&quot; tabindex=&quot;-1&quot;&gt;Deprecated rules&lt;/h3&gt;
&lt;p&gt;With this release we deprecated &lt;a href=&quot;https://eslint.org/docs/rules/prefer-reflect&quot;&gt;prefer-reflect&lt;/a&gt; rule. The original intent of this rule now seems misguided as we have come to understand that Reflect methods are not actually intended to replace the &lt;code&gt;Object&lt;/code&gt; counterparts the rule suggests, but rather exist as low-level primitives to be used with proxies in order to replicate the default behavior of various previously existing functionality. This rule will not be replaced.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e46666b&quot;&gt;e46666b&lt;/a&gt; New: Codeframe formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5860&quot;&gt;#5860&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7437&quot;&gt;#7437&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d933516&quot;&gt;d933516&lt;/a&gt; New: &lt;code&gt;no-useless-return&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7309&quot;&gt;#7309&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7441&quot;&gt;#7441&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cbbe420&quot;&gt;cbbe420&lt;/a&gt; New: Support enhanced parsers (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6974&quot;&gt;#6974&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6975&quot;&gt;#6975&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/644d25b&quot;&gt;644d25b&lt;/a&gt; Update: Add an ignoreRegExpLiterals option to max-len (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3229&quot;&gt;#3229&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7346&quot;&gt;#7346&lt;/a&gt;) (Wilfred Hughes)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e7af30&quot;&gt;5e7af30&lt;/a&gt; Update: Add &lt;code&gt;CallExpression&lt;/code&gt; option for &lt;code&gt;indent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5946&quot;&gt;#5946&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7189&quot;&gt;#7189&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e064a25&quot;&gt;e064a25&lt;/a&gt; Update: add fixer for &lt;code&gt;arrow-body-style&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7240&quot;&gt;#7240&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0fe727&quot;&gt;e0fe727&lt;/a&gt; Update: add fixer for &lt;code&gt;brace-style&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7074&quot;&gt;#7074&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7347&quot;&gt;#7347&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee3bcea&quot;&gt;ee3bcea&lt;/a&gt; Update: add fixer for &lt;code&gt;newline-after-var&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5959&quot;&gt;#5959&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7375&quot;&gt;#7375&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ed8b9b&quot;&gt;5ed8b9b&lt;/a&gt; Update: Deprecate prefer-reflect (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7226&quot;&gt;#7226&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7464&quot;&gt;#7464&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3813988&quot;&gt;3813988&lt;/a&gt; Update: fix false negative of &lt;code&gt;no-extra-parens&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7122&quot;&gt;#7122&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7432&quot;&gt;#7432&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c675d7d&quot;&gt;c675d7d&lt;/a&gt; Update: Fix &lt;code&gt;no-useless-escape&lt;/code&gt; false negative in regexes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7424&quot;&gt;#7424&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7425&quot;&gt;#7425&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d5146f&quot;&gt;1d5146f&lt;/a&gt; Update: fix wrong indentation about &lt;code&gt;catch&lt;/code&gt;,&lt;code&gt;finally&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7371&quot;&gt;#7371&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d257428&quot;&gt;d257428&lt;/a&gt; Update: &lt;code&gt;func-name-matching&lt;/code&gt;: add “always”/“never” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7391&quot;&gt;#7391&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7428&quot;&gt;#7428&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8dfd802&quot;&gt;8dfd802&lt;/a&gt; Fix: avoid &lt;code&gt;camelcase&lt;/code&gt; false positive with NewExpressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7363&quot;&gt;#7363&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7409&quot;&gt;#7409&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e9ff08&quot;&gt;6e9ff08&lt;/a&gt; Fix: indent.js to support multiline array statements. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7237&quot;&gt;#7237&lt;/a&gt;) (Scott Stern)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16367a8&quot;&gt;16367a8&lt;/a&gt; Fix: Return statement spacing. Fix for indent rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7164&quot;&gt;#7164&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7197&quot;&gt;#7197&lt;/a&gt;) (Imad Elyafi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c710584&quot;&gt;c710584&lt;/a&gt; Fix: support for MemberExpression with function body. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7400&quot;&gt;#7400&lt;/a&gt;) (Scott Stern)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b200086&quot;&gt;b200086&lt;/a&gt; Fix: Support type annotations in array-bracket-spacing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7445&quot;&gt;#7445&lt;/a&gt;) (Jimmy Jia)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85d7e24&quot;&gt;85d7e24&lt;/a&gt; Docs: add additional examples for MemberExpressions in Indent rule. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7408&quot;&gt;#7408&lt;/a&gt;) (Scott Stern)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e8159b4&quot;&gt;e8159b4&lt;/a&gt; Docs: Fix typo and explain static func calls for class-methods-use-this (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7421&quot;&gt;#7421&lt;/a&gt;) (Scott O’Hara)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/23062e2&quot;&gt;23062e2&lt;/a&gt; Docs: Fix typo in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7442&quot;&gt;#7442&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7447&quot;&gt;#7447&lt;/a&gt;) (Denis Sikuler)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2aa1107&quot;&gt;2aa1107&lt;/a&gt; Docs: Include note on fatal: true in the node.js api section (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7376&quot;&gt;#7376&lt;/a&gt;) (Simen Bekkhus)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6875576&quot;&gt;6875576&lt;/a&gt; Docs: Remove broken links to &lt;a href=&quot;http://jslinterrors.com/&quot;&gt;jslinterrors.com&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7368&quot;&gt;#7368&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7369&quot;&gt;#7369&lt;/a&gt;) (Dannii Willis)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build&quot; tabindex=&quot;-1&quot;&gt;Build&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8153ad&quot;&gt;f8153ad&lt;/a&gt; Build: Ensure absolute links in docs retain .md extensions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7419&quot;&gt;#7419&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7438&quot;&gt;#7438&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c8ed2d&quot;&gt;2c8ed2d&lt;/a&gt; Build: ensure that all files are linted on bash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7426&quot;&gt;#7426&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7427&quot;&gt;#7427&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/18ff70f&quot;&gt;18ff70f&lt;/a&gt; Chore: Enable &lt;code&gt;no-useless-escape&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7403&quot;&gt;#7403&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/77e3a34&quot;&gt;77e3a34&lt;/a&gt; Chore: Pin mock-fs dev dependency (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7466&quot;&gt;#7466&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/92ad43b&quot;&gt;92ad43b&lt;/a&gt; Chore: Update deprecated rules in conf/eslint.json (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7467&quot;&gt;#7467&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;upgrades&quot; tabindex=&quot;-1&quot;&gt;Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe0d903&quot;&gt;fe0d903&lt;/a&gt; Upgrade: Shelljs to ^0.7.5 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7316&quot;&gt;#7316&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7465&quot;&gt;#7465&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.8.1 released</title>
    <link href="https://eslint.org/blog/2016/10/eslint-v3.8.1-released/"/>
    <updated>2016-10-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/10/eslint-v3.8.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/681c78a&quot;&gt;681c78a&lt;/a&gt; Fix: &lt;code&gt;comma-dangle&lt;/code&gt; was confused by type annotations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7370&quot;&gt;#7370&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7372&quot;&gt;#7372&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7525042&quot;&gt;7525042&lt;/a&gt; Fix: Allow useless escapes in tagged template literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7383&quot;&gt;#7383&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7384&quot;&gt;#7384&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9106964&quot;&gt;9106964&lt;/a&gt; Docs: Fix broken link for stylish formatter (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7386&quot;&gt;#7386&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/49d3c1b&quot;&gt;49d3c1b&lt;/a&gt; Docs: Document the deprecated meta property (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7367&quot;&gt;#7367&lt;/a&gt;) (Randy Coulman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19d2996&quot;&gt;19d2996&lt;/a&gt; Docs: Relax permission for merging PRs (refs eslint/tsc-meetings&lt;a href=&quot;https://github.com/eslint/eslint/issues/20&quot;&gt;#20&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7360&quot;&gt;#7360&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.8.0 released</title>
    <link href="https://eslint.org/blog/2016/10/eslint-v3.8.0-released/"/>
    <updated>2016-10-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/10/eslint-v3.8.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;additional-property-on-linting-results&quot; tabindex=&quot;-1&quot;&gt;Additional Property on Linting Results&lt;/h3&gt;
&lt;p&gt;If you’re using the ESLint &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api&quot;&gt;Node.js API&lt;/a&gt; or writing a custom formatter, you’ll find that result object for each file now has a &lt;code&gt;source&lt;/code&gt; property. This property contains the original source code from the file, allowing formatters to output contextual information along with linting error messages. This new &lt;code&gt;source&lt;/code&gt; property on the file results object is intended to replace the &lt;code&gt;source&lt;/code&gt; property on the lint message object, which will be removed in a later release. If you have a custom formatter making use of the &lt;code&gt;source&lt;/code&gt; property on the lint message object, we recommend updating your formatter to check for the existence of the &lt;code&gt;source&lt;/code&gt; property on the file results object and to use it if found. See the &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-custom-formatters#description-of-the-results&quot;&gt;documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/func-name-matching&quot;&gt;func-name-matching&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;new-options&quot; tabindex=&quot;-1&quot;&gt;New Options&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;comma-dangle&lt;/a&gt; … &lt;code&gt;arrays&lt;/code&gt;, &lt;code&gt;objects&lt;/code&gt;, &lt;code&gt;imports&lt;/code&gt;, &lt;code&gt;exports&lt;/code&gt;, and &lt;code&gt;functions&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/space-before-function-paren&quot;&gt;space-before-function-paren&lt;/a&gt; … &lt;code&gt;asyncArrow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/wrap-iife&quot;&gt;wrap-iife&lt;/a&gt; … &lt;code&gt;functionPrototypeMethods&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;new-autofixing&quot; tabindex=&quot;-1&quot;&gt;New autofixing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/curly&quot;&gt;curly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-lonely-if&quot;&gt;no-lonely-if&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-extra-bind&quot;&gt;no-extra-bind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/one-var-declaration-per-line&quot;&gt;one-var-declaration-per-line&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-spread&quot;&gt;prefer-spread&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd72bba&quot;&gt;cd72bba&lt;/a&gt; New: &lt;code&gt;func-name-matching&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6065&quot;&gt;#6065&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7063&quot;&gt;#7063&lt;/a&gt;) (Annie Zhang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c8796e9&quot;&gt;c8796e9&lt;/a&gt; Update: &lt;code&gt;comma-dangle&lt;/code&gt; supports trailing function commas (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7101&quot;&gt;#7101&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7181&quot;&gt;#7181&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4abaf0&quot;&gt;c4abaf0&lt;/a&gt; Update: &lt;code&gt;space-before-function-paren&lt;/code&gt; supports async/await (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7101&quot;&gt;#7101&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7180&quot;&gt;#7180&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5266793&quot;&gt;5266793&lt;/a&gt; Update: no-useless-escape checks template literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7331&quot;&gt;#7331&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7332&quot;&gt;#7332&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b08fb91&quot;&gt;b08fb91&lt;/a&gt; Update: add source property to LintResult object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7098&quot;&gt;#7098&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7304&quot;&gt;#7304&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1470b5&quot;&gt;c1470b5&lt;/a&gt; Update: Make the &lt;code&gt;prefer-template&lt;/code&gt; fixer unescape quotes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7330&quot;&gt;#7330&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7334&quot;&gt;#7334&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8387c1&quot;&gt;f8387c1&lt;/a&gt; Update: add fixer for &lt;code&gt;prefer-spread&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7283&quot;&gt;#7283&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52dfce5&quot;&gt;52dfce5&lt;/a&gt; Update: add fixer for &lt;code&gt;one-var-declaration-per-line&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7295&quot;&gt;#7295&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e994ae&quot;&gt;0e994ae&lt;/a&gt; Update: Improve the error messages for &lt;code&gt;no-unused-vars&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7282&quot;&gt;#7282&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7315&quot;&gt;#7315&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/72f394d&quot;&gt;72f394d&lt;/a&gt; Update: Fix false negative of &lt;code&gt;no-multiple-empty-lines&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7312&quot;&gt;#7312&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7313&quot;&gt;#7313&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/756bc5a&quot;&gt;756bc5a&lt;/a&gt; Update: Use characters instead of code units for &lt;code&gt;max-len&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7299&quot;&gt;#7299&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a12d1a9&quot;&gt;a12d1a9&lt;/a&gt; Update: add fixer for &lt;code&gt;no-lonely-if&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7202&quot;&gt;#7202&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ffe516&quot;&gt;2ffe516&lt;/a&gt; Update: add fixer for &lt;code&gt;curly&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7105&quot;&gt;#7105&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ac3504d&quot;&gt;ac3504d&lt;/a&gt; Update: add functionPrototypeMethods to wrap-iife (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7212&quot;&gt;#7212&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7284&quot;&gt;#7284&lt;/a&gt;) (Eli White)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e16fb4&quot;&gt;5e16fb4&lt;/a&gt; Update: add fixer for &lt;code&gt;no-extra-bind&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7236&quot;&gt;#7236&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0d3b28&quot;&gt;d0d3b28&lt;/a&gt; Fix: id-length rule incorrectly firing on member access (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6475&quot;&gt;#6475&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7365&quot;&gt;#7365&lt;/a&gt;) (Burak Yiğit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2729d94&quot;&gt;2729d94&lt;/a&gt; Fix: Don’t report setter params in class bodies as unused (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7351&quot;&gt;#7351&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7352&quot;&gt;#7352&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d08c33&quot;&gt;5d08c33&lt;/a&gt; Fix: Handle parentheses correctly in &lt;code&gt;yoda&lt;/code&gt; fixer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7326&quot;&gt;#7326&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7327&quot;&gt;#7327&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/55b5146&quot;&gt;55b5146&lt;/a&gt; Fix: &lt;code&gt;RuleTester&lt;/code&gt; didn’t support &lt;code&gt;mocha --watch&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7287&quot;&gt;#7287&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52da71e&quot;&gt;52da71e&lt;/a&gt; Fix: Don’t require commas after rest properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7297&quot;&gt;#7297&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7298&quot;&gt;#7298&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9a7ec5&quot;&gt;c9a7ec5&lt;/a&gt; Fix: Improving optionator configuration for --print-config (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7206&quot;&gt;#7206&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51bfade&quot;&gt;51bfade&lt;/a&gt; Fix: avoid &lt;code&gt;object-shorthand&lt;/code&gt; crash with spread properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7305&quot;&gt;#7305&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7306&quot;&gt;#7306&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1418384&quot;&gt;1418384&lt;/a&gt; Fix: Don’t require semicolons before &lt;code&gt;++&lt;/code&gt;/&lt;code&gt;--&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7252&quot;&gt;#7252&lt;/a&gt;) (Adrian Heine né Lang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d840afe&quot;&gt;d840afe&lt;/a&gt; Docs: remove broken link from no-loop-func doc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7342&quot;&gt;#7342&lt;/a&gt;) (Michael McDermott)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16d495d&quot;&gt;16d495d&lt;/a&gt; Docs: Updating CLI overview with latest changes (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7335&quot;&gt;#7335&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee60acf&quot;&gt;ee60acf&lt;/a&gt; Chore: add integration tests for autofixing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5909&quot;&gt;#5909&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7349&quot;&gt;#7349&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b85004&quot;&gt;0b85004&lt;/a&gt; Chore: Enable prefer-template (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7357&quot;&gt;#7357&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ca1947b&quot;&gt;ca1947b&lt;/a&gt; Chore: Update pull request template (refs eslint/tsc-meetings&lt;a href=&quot;https://github.com/eslint/eslint/issues/20&quot;&gt;#20&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7359&quot;&gt;#7359&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0db4164&quot;&gt;0db4164&lt;/a&gt; Chore: run prefer-template autofixer on test files (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7354&quot;&gt;#7354&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3b11d3f&quot;&gt;3b11d3f&lt;/a&gt; Chore: refactor &lt;code&gt;no-multiple-empty-lines&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7314&quot;&gt;#7314&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/93214aa&quot;&gt;93214aa&lt;/a&gt; Chore: Convert non-lib/test files to template literals (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7329&quot;&gt;#7329&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.7.1 released</title>
    <link href="https://eslint.org/blog/2016/10/eslint-v3.7.1-released/"/>
    <updated>2016-10-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/10/eslint-v3.7.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3dcae13&quot;&gt;3dcae13&lt;/a&gt; Fix: Use the correct location for &lt;code&gt;comma-dangle&lt;/code&gt; errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7291&quot;&gt;#7291&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7292&quot;&gt;#7292&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb7ba6d&quot;&gt;cb7ba6d&lt;/a&gt; Fix: no-implicit-coercion should not fix ~. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7272&quot;&gt;#7272&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7289&quot;&gt;#7289&lt;/a&gt;) (Eli White)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ec82ee&quot;&gt;8ec82ee&lt;/a&gt; Docs: change links of templates to raw data (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7288&quot;&gt;#7288&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce590e2&quot;&gt;ce590e2&lt;/a&gt; Chore: Add additional tests for bin/eslint.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7290&quot;&gt;#7290&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.7.0 released</title>
    <link href="https://eslint.org/blog/2016/09/eslint-v3.7.0-released/"/>
    <updated>2016-09-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/09/eslint-v3.7.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint. Though it’s a smaller release, it does include the ability to autofix a number of rules!&lt;/p&gt;
&lt;h3 id=&quot;autofixing&quot; tabindex=&quot;-1&quot;&gt;Autofixing&lt;/h3&gt;
&lt;p&gt;In addition to linting code, many of the rules can automatically fix errors using the &lt;code&gt;--fix&lt;/code&gt; flag. This can be a huge time saver for developers using ESLint on a pre-existing codebase! The following rules can now be autofixed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-numeric-literals&quot;&gt;prefer-numeric-literals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-undef-init&quot;&gt;no-undef-init&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;no-useless-computed-key&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/lines-around-directive&quot;&gt;lines-around-directive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/wrap-iife&quot;&gt;wrap-iife&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/dot-location&quot;&gt;dot-location&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/yoda&quot;&gt;yoda&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c05a19c&quot;&gt;c05a19c&lt;/a&gt; Update: add fixer for &lt;code&gt;prefer-numeric-literals&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7205&quot;&gt;#7205&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2f171f3&quot;&gt;2f171f3&lt;/a&gt; Update: add fixer for &lt;code&gt;no-undef-init&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7210&quot;&gt;#7210&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/332d213&quot;&gt;332d213&lt;/a&gt; Update: Ensure &lt;code&gt;indent&lt;/code&gt; handles nested functions correctly (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7249&quot;&gt;#7249&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7265&quot;&gt;#7265&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c36d842&quot;&gt;c36d842&lt;/a&gt; Update: add fixer for &lt;code&gt;no-useless-computed-key&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7207&quot;&gt;#7207&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/18376cf&quot;&gt;18376cf&lt;/a&gt; Update: add fixer for &lt;code&gt;lines-around-directive&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7217&quot;&gt;#7217&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8e8fab&quot;&gt;f8e8fab&lt;/a&gt; Update: add fixer for &lt;code&gt;wrap-iife&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7196&quot;&gt;#7196&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd1dc57&quot;&gt;cd1dc57&lt;/a&gt; Update: Add a fixer for &lt;code&gt;dot-location&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7186&quot;&gt;#7186&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89787b2&quot;&gt;89787b2&lt;/a&gt; Update: for &lt;code&gt;yoda&lt;/code&gt;, add a fixer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7199&quot;&gt;#7199&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3f95de&quot;&gt;e3f95de&lt;/a&gt; Update: Fix &lt;code&gt;no-extra-parens&lt;/code&gt; false negative (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7229&quot;&gt;#7229&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7231&quot;&gt;#7231&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2fee8ad&quot;&gt;2fee8ad&lt;/a&gt; Fix: object-shorthand’s consistent-as-needed option (issue &lt;a href=&quot;https://github.com/eslint/eslint/issues/7214&quot;&gt;#7214&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7215&quot;&gt;#7215&lt;/a&gt;) (Naomi Jacobs)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dffb4fa&quot;&gt;dffb4fa&lt;/a&gt; Fix: &lt;code&gt;no-unused-vars&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7250&quot;&gt;#7250&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7258&quot;&gt;#7258&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/742ae67&quot;&gt;742ae67&lt;/a&gt; Fix: avoid indent and no-mixed-spaces-and-tabs conflicts (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7248&quot;&gt;#7248&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7266&quot;&gt;#7266&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/85b8714&quot;&gt;85b8714&lt;/a&gt; Fix: Use error templates even when reading from stdin (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7213&quot;&gt;#7213&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7223&quot;&gt;#7223&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/876d747&quot;&gt;876d747&lt;/a&gt; Docs: Steps for adding new committers/TSCers (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7221&quot;&gt;#7221&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4448cec&quot;&gt;4448cec&lt;/a&gt; Docs: Adding missing ES8 reference to configuring (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7271&quot;&gt;#7271&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/558b444&quot;&gt;558b444&lt;/a&gt; Docs: Add @not-an-aardvark to development team (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7279&quot;&gt;#7279&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66adac1&quot;&gt;66adac1&lt;/a&gt; Docs: correction in prefer-reflect docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7069&quot;&gt;#7069&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7150&quot;&gt;#7150&lt;/a&gt;) (Scott Stern)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2909c19&quot;&gt;2909c19&lt;/a&gt; Docs: Fix typo in object-shorthand docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7267&quot;&gt;#7267&lt;/a&gt;) (Brian Donovan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/722c68c&quot;&gt;722c68c&lt;/a&gt; Docs: add code fences to the issue template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7254&quot;&gt;#7254&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7bb800d&quot;&gt;7bb800d&lt;/a&gt; Chore: add internal rule to enforce meta.docs conventions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6954&quot;&gt;#6954&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7155&quot;&gt;#7155&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.6.1 released</title>
    <link href="https://eslint.org/blog/2016/09/eslint-v3.6.1-released/"/>
    <updated>2016-09-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/09/eslint-v3.6.1-released/</id>
    <content type="html">&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87625fa&quot;&gt;87625fa&lt;/a&gt; Docs: Improve eol-last examples in docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7227&quot;&gt;#7227&lt;/a&gt;) (Chainarong Tangsurakit)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de8eaa4&quot;&gt;de8eaa4&lt;/a&gt; Docs: &lt;code&gt;class-methods-use-this&lt;/code&gt;: fix option name (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7224&quot;&gt;#7224&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2355f8d&quot;&gt;2355f8d&lt;/a&gt; Docs: Add Brunch plugin to integrations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7225&quot;&gt;#7225&lt;/a&gt;) (Aleksey Shvayka)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a5817ae&quot;&gt;a5817ae&lt;/a&gt; Docs: Default option from &lt;code&gt;operator-linebreak&lt;/code&gt; is &lt;code&gt;after&lt;/code&gt;and not always (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7228&quot;&gt;#7228&lt;/a&gt;) (Konstantin Pschera)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b467436&quot;&gt;b467436&lt;/a&gt; Upgrade: Upgrade Espree to 3.3.1 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7253&quot;&gt;#7253&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/299a563&quot;&gt;299a563&lt;/a&gt; Build: Do not strip .md extension from absolute URLs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7222&quot;&gt;#7222&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27042d2&quot;&gt;27042d2&lt;/a&gt; Chore: removed unused code related to scopeMap (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7218&quot;&gt;#7218&lt;/a&gt;) (Yang Su)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d154204&quot;&gt;d154204&lt;/a&gt; Chore: Lint bin/eslint.js (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7243&quot;&gt;#7243&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.6.0 released</title>
    <link href="https://eslint.org/blog/2016/09/eslint-v3.6.0-released/"/>
    <updated>2016-09-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/09/eslint-v3.6.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;support-for-es2017&quot; tabindex=&quot;-1&quot;&gt;Support for ES2017&lt;/h3&gt;
&lt;p&gt;With this release, we support ES2017 syntax natively. To activate ES2017 parser option, you need to update parser option (in your &lt;code&gt;.eslintrc.*&lt;/code&gt; file).&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token string-property property&quot;&gt;&quot;parserOptions&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token string-property property&quot;&gt;&quot;ecmaVersion&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2017&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token string-property property&quot;&gt;&quot;sourceType&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;module&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;rules-enhanced-to-support-es2017&quot; tabindex=&quot;-1&quot;&gt;Rules enhanced to support ES2017&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/space-unary-ops&quot;&gt;&lt;code&gt;space-unary-ops&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;&lt;code&gt;no-extra-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;&lt;code&gt;keyword-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;&lt;code&gt;arrow-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-arrow-callback&quot;&gt;&lt;code&gt;prefer-arrow-callback&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-unused-expressions&quot;&gt;&lt;code&gt;no-unused-expressions&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;auto-fix&quot; tabindex=&quot;-1&quot;&gt;Auto-Fix&lt;/h3&gt;
&lt;p&gt;Four rules gained support for the &lt;code&gt;--fix&lt;/code&gt; command line option:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/strict&quot;&gt;&lt;code&gt;strict&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-template&quot;&gt;&lt;code&gt;prefer-template&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/quote-props&quot;&gt;&lt;code&gt;quote-props&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-regex-spaces&quot;&gt;&lt;code&gt;no-regex-spaces&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b05d9c&quot;&gt;1b05d9c&lt;/a&gt; Update: add fixer for &lt;code&gt;strict&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6668&quot;&gt;#6668&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7198&quot;&gt;#7198&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aaa3779&quot;&gt;aaa3779&lt;/a&gt; Update: Allow &lt;code&gt;space-unary-ops&lt;/code&gt; to handle await expressions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7174&quot;&gt;#7174&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/91bf477&quot;&gt;91bf477&lt;/a&gt; Update: add fixer for &lt;code&gt;prefer-template&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6978&quot;&gt;#6978&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7165&quot;&gt;#7165&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/745343f&quot;&gt;745343f&lt;/a&gt; Update: &lt;code&gt;no-extra-parens&lt;/code&gt; supports async/await (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7101&quot;&gt;#7101&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7178&quot;&gt;#7178&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/462a3f7&quot;&gt;462a3f7&lt;/a&gt; Update: &lt;code&gt;keyword-spacing&lt;/code&gt; supports async/await (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7101&quot;&gt;#7101&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7179&quot;&gt;#7179&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/709a734&quot;&gt;709a734&lt;/a&gt; Update: Allow template string in &lt;code&gt;valid-typeof&lt;/code&gt; comparison (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7166&quot;&gt;#7166&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7168&quot;&gt;#7168&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16bb802&quot;&gt;16bb802&lt;/a&gt; Update: Ensure &lt;code&gt;arrow-parens&lt;/code&gt; handles async arrow functions correctly (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7176&quot;&gt;#7176&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c118d21&quot;&gt;c118d21&lt;/a&gt; Update: Let &lt;code&gt;no-restricted-properties&lt;/code&gt; check destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7147&quot;&gt;#7147&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7151&quot;&gt;#7151&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95c777a&quot;&gt;95c777a&lt;/a&gt; Update: Make &lt;code&gt;no-restricted-properties&lt;/code&gt; more flexible (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7137&quot;&gt;#7137&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7139&quot;&gt;#7139&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0fdf23c&quot;&gt;0fdf23c&lt;/a&gt; Update: fix &lt;code&gt;quotes&lt;/code&gt; rule’s false negative (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7084&quot;&gt;#7084&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7141&quot;&gt;#7141&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f2a789d&quot;&gt;f2a789d&lt;/a&gt; Update: fix &lt;code&gt;no-unused-vars&lt;/code&gt; false negative (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7124&quot;&gt;#7124&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7143&quot;&gt;#7143&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e016384&quot;&gt;e016384&lt;/a&gt; Update: add fixer for quote-props (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6996&quot;&gt;#6996&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7095&quot;&gt;#7095&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8b3fc32&quot;&gt;8b3fc32&lt;/a&gt; Update: Make &lt;code&gt;indent&lt;/code&gt; report lines with mixed spaces/tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4274&quot;&gt;#4274&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7076&quot;&gt;#7076&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b39ac2c&quot;&gt;b39ac2c&lt;/a&gt; Update: add fixer for &lt;code&gt;no-regex-spaces&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7113&quot;&gt;#7113&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a876673&quot;&gt;a876673&lt;/a&gt; Update: no-implicit-coercion checks TemplateLiterals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7062&quot;&gt;#7062&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7121&quot;&gt;#7121&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/22edd8a&quot;&gt;22edd8a&lt;/a&gt; Update: &lt;code&gt;class-methods-use-this&lt;/code&gt;: &lt;code&gt;exceptions&lt;/code&gt; option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7085&quot;&gt;#7085&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7120&quot;&gt;#7120&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bcfa3e5&quot;&gt;bcfa3e5&lt;/a&gt; Update: Add &lt;code&gt;always&lt;/code&gt;/&lt;code&gt;never&lt;/code&gt; option to &lt;code&gt;eol-last&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6938&quot;&gt;#6938&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6952&quot;&gt;#6952&lt;/a&gt;) (kdex)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e1fee1&quot;&gt;8e1fee1&lt;/a&gt; Fix: Handle number literals correctly in &lt;code&gt;no-whitespace-before-property&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7185&quot;&gt;#7185&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f71937a&quot;&gt;f71937a&lt;/a&gt; Fix: Don’t report async/generator callbacks in &lt;code&gt;array-callback-return&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7172&quot;&gt;#7172&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/461b015&quot;&gt;461b015&lt;/a&gt; Fix: Handle async functions correctly in &lt;code&gt;prefer-arrow-callback&lt;/code&gt; fixer (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7173&quot;&gt;#7173&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7ea3e4b&quot;&gt;7ea3e4b&lt;/a&gt; Fix: Handle await expressions correctly in &lt;code&gt;no-unused-expressions&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7175&quot;&gt;#7175&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e0b068&quot;&gt;9e0b068&lt;/a&gt; Fix: valid-jsdoc does not throw on FieldType without value (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7184&quot;&gt;#7184&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7187&quot;&gt;#7187&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6148d85&quot;&gt;6148d85&lt;/a&gt; Fix: Report columns for &lt;code&gt;eol-last&lt;/code&gt; correctly (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7136&quot;&gt;#7136&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7149&quot;&gt;#7149&lt;/a&gt;) (kdex)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28ddcf8&quot;&gt;28ddcf8&lt;/a&gt; Fix: &lt;code&gt;max-len&lt;/code&gt;: &lt;code&gt;ignoreTemplateLiterals&lt;/code&gt;: handle 3+ lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7125&quot;&gt;#7125&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7138&quot;&gt;#7138&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/76acbb5&quot;&gt;76acbb5&lt;/a&gt; Fix: include LogicalExpression in indent length calc  (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6731&quot;&gt;#6731&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7087&quot;&gt;#7087&lt;/a&gt;) (Alec)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afd132a&quot;&gt;afd132a&lt;/a&gt; Fix: line-comment-position “above” string option now works (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7100&quot;&gt;#7100&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7102&quot;&gt;#7102&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c85fd84&quot;&gt;c85fd84&lt;/a&gt; Fix: max-statements-per-line rule to force minimum to be 1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7051&quot;&gt;#7051&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7092&quot;&gt;#7092&lt;/a&gt;) (Scott Stern)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ae660b&quot;&gt;6ae660b&lt;/a&gt; Fix: Don’t report comparisons of two typeof expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7078&quot;&gt;#7078&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7082&quot;&gt;#7082&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a36138&quot;&gt;0a36138&lt;/a&gt; Docs: Update ecmaVersion instructions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7195&quot;&gt;#7195&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b5d9b7&quot;&gt;4b5d9b7&lt;/a&gt; Docs: Update process for evaluating proposals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7156&quot;&gt;#7156&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7183&quot;&gt;#7183&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/660e091&quot;&gt;660e091&lt;/a&gt; Docs: Update rule descriptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5912&quot;&gt;#5912&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7152&quot;&gt;#7152&lt;/a&gt;) (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc80467&quot;&gt;cc80467&lt;/a&gt; Docs: Update PR templates for formatting (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7128&quot;&gt;#7128&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7e8316f&quot;&gt;7e8316f&lt;/a&gt; Docs: Update release process (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7127&quot;&gt;#7127&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ac0bb62&quot;&gt;ac0bb62&lt;/a&gt; Docs: Fixes examples for allowTemplateLiterals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7115&quot;&gt;#7115&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7135&quot;&gt;#7135&lt;/a&gt;) (Zoe Ingram)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0ca26d9&quot;&gt;0ca26d9&lt;/a&gt; Docs: Distinguish examples for space-before-blocks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7132&quot;&gt;#7132&lt;/a&gt;) (Timo Tijhof)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e462e47&quot;&gt;e462e47&lt;/a&gt; Docs: updates category of no-restricted-properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7112&quot;&gt;#7112&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7118&quot;&gt;#7118&lt;/a&gt;) (Alec)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/710f205&quot;&gt;710f205&lt;/a&gt; Docs: Fix typos in Issues section of Maintainer’s Guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7114&quot;&gt;#7114&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/546a3ca&quot;&gt;546a3ca&lt;/a&gt; Docs: Clarify that linter does not process configuration (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7108&quot;&gt;#7108&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7110&quot;&gt;#7110&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d50943&quot;&gt;0d50943&lt;/a&gt; Docs: Elaborate on &lt;code&gt;guard-for-in&lt;/code&gt; best practice (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7071&quot;&gt;#7071&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7094&quot;&gt;#7094&lt;/a&gt;) (Dallon Feldner)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58e6d76&quot;&gt;58e6d76&lt;/a&gt; Docs: Fix examples for no-restricted-properties (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7099&quot;&gt;#7099&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6cfe519&quot;&gt;6cfe519&lt;/a&gt; Docs: Corrected typo in line-comment-position rule doc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7097&quot;&gt;#7097&lt;/a&gt;) (Alex Mercier)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f02e52a&quot;&gt;f02e52a&lt;/a&gt; Docs: Add fixable note to no-implicit-coercion docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7096&quot;&gt;#7096&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/35f7be9&quot;&gt;35f7be9&lt;/a&gt; Upgrade: espree to 3.2.0, remove tests with SyntaxErrors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7169&quot;&gt;#7169&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7170&quot;&gt;#7170&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d10657&quot;&gt;2d10657&lt;/a&gt; Chore: add tests for &lt;code&gt;generator-star-spacing&lt;/code&gt; and async (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/7101&quot;&gt;#7101&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7182&quot;&gt;#7182&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8db4f0c&quot;&gt;8db4f0c&lt;/a&gt; Chore: Enable &lt;code&gt;typeof&lt;/code&gt; check for &lt;code&gt;no-undef&lt;/code&gt; rule in eslint-config-eslint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7103&quot;&gt;#7103&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1738b2e&quot;&gt;1738b2e&lt;/a&gt; Chore: fix name of internal-no-invalid-meta test file (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7142&quot;&gt;#7142&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a2aefb&quot;&gt;9a2aefb&lt;/a&gt; Chore: Don’t require an issue reference in check-commit npm script (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7104&quot;&gt;#7104&lt;/a&gt;) (Teddy Katz)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Changes to Issue and Pull Request Policies</title>
    <link href="https://eslint.org/blog/2016/09/changes-to-issues-and-pr-policies/"/>
    <updated>2016-09-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/09/changes-to-issues-and-pr-policies/</id>
    <content type="html">&lt;p&gt;From the beginning of the project, ESLint has always required issues for every pull request containing code. There were a number of reasons for that, mostly related to how we were triaging and handling incoming requests as well as the limitations the GitHub issue tracker imposed on us. Since that time, there have been a lot of improvements to the GitHub issue and pull request trackers, and as such, we’ve been able to make some changes.&lt;/p&gt;
&lt;h2 id=&quot;most-pull-requests-no-longer-require-issues&quot; tabindex=&quot;-1&quot;&gt;Most Pull Requests No Longer Require Issues&lt;/h2&gt;
&lt;p&gt;We’ve lifted the restriction that all pull requests require issues. For almost all types of changes, you can now submit pull requests directly without an issue. We’ve added a pull request template, and as long as you fill out the required information in that template, you can feel free to submit pull requests without opening issues first.&lt;/p&gt;
&lt;p&gt;There are, however, two types of changes that still require issues:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Any breaking change.&lt;/li&gt;
&lt;li&gt;Any changes to the core.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Breaking and core changes have a high potential to affect end-users, and so we still want to understand that impact before people spend time writing code.&lt;/p&gt;
&lt;h2 id=&quot;end-of-life-periods-for-issues&quot; tabindex=&quot;-1&quot;&gt;End-of-Life Periods for Issues&lt;/h2&gt;
&lt;p&gt;One of the things we’ve heard from contributors is that it’s frustrating when an issue gets stuck without resolution. We’ve tried, from the start, to give feedback as quickly as possible to issues and pull requests. However, as ESLint has grown, the number of issues and pull requests has grown quite large and has made it hard for the team to handle.&lt;/p&gt;
&lt;p&gt;Different teams in the open source community handle this problem differently. Some teams choose to never close issues and just leave all of them open indefinitely in case someone wants to fix them. Some teams use bots to automatically close issues that are older than a set amount of time. The ESLint team wasn’t too happy with these choices, so we arrived on a more manual process that is a mixture of the two.&lt;/p&gt;
&lt;p&gt;Our top goal is to give feedback quickly, and since most issues are requests for the ESLint team to make a change, we want to let you know whether or not we’ll be making that change. The best way to do that is to close the issue with an appropriate comment. The rules we’ve established are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An issue that hasn’t been accepted may be closed after 21 days. (Only accepted issues end up on the roadmap.)&lt;/li&gt;
&lt;li&gt;An accepted issue may be closed after 90 days if no one has agreed to implement it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While we wish we could commit to implementing every good idea for ESLint, the reality is that many requests will not end up on the formal roadmap. The ESLint team is a team of volunteers working in their spare time, and as such, the amount of time available for work is small. We feel that closing issues and giving a clear indication that the requested change will not be made is a more honest approach than leaving issues open forever just in case someone decides they’d like to contribute a change. In our experience, issues that are open for 90 days or more are rarely ever addressed and just serve to confuse everyone about their status.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you’re passionate about a change, consider submitting a pull request instead of an issue. A lot of times, we just don’t have the extra bandwidth to accommodate significant requests, but we can guide others through the changes. Submitting a pull request increases the chances that your change will land (though it does not guarantee it).&lt;/p&gt;
&lt;h2 id=&quot;continuing-to-learn&quot; tabindex=&quot;-1&quot;&gt;Continuing to Learn&lt;/h2&gt;
&lt;p&gt;As always, we’ll continue to evaluate our issue and pull request policies based on feedback from the ESLint team and the community as a whole. We hope these new changes will help the ESLint community continue to grow by streamlining the process for accepting contributions.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.5.0 released</title>
    <link href="https://eslint.org/blog/2016/09/eslint-v3.5.0-released/"/>
    <updated>2016-09-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/09/eslint-v3.5.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;The following new rules were added in this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-numeric-literals&quot;&gt;&lt;code&gt;prefer-numeric-literals&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-properties&quot;&gt;&lt;code&gt;no-restricted-properties&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/line-comment-position&quot;&gt;&lt;code&gt;line-comment-position&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/lines-around-directive&quot;&gt;&lt;code&gt;lines-around-directive&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;auto-fix&quot; tabindex=&quot;-1&quot;&gt;Auto-Fix&lt;/h3&gt;
&lt;p&gt;Eight rules gained support for the &lt;code&gt;--fix&lt;/code&gt; command line option:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-floating-decimal&quot;&gt;&lt;code&gt;no-floating-decimal&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;&lt;code&gt;no-implicit-coercion&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-arrow-callback&quot;&gt;&lt;code&gt;prefer-arrow-callback&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/comma-style&quot;&gt;&lt;code&gt;comma-style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/dot-notation&quot;&gt;&lt;code&gt;dot-notation&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/newline-before-return&quot;&gt;&lt;code&gt;newline-before-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/wrap-regex&quot;&gt;&lt;code&gt;wrap-regex&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/new-parens&quot;&gt;&lt;code&gt;new-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d97c18&quot;&gt;6d97c18&lt;/a&gt; New: &lt;code&gt;max-len&lt;/code&gt;: &lt;code&gt;ignoreStrings&lt;/code&gt;+&lt;code&gt;ignoreTemplateLiterals&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5805&quot;&gt;#5805&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7049&quot;&gt;#7049&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3960617&quot;&gt;3960617&lt;/a&gt; New: &lt;code&gt;prefer-numeric-literals&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6068&quot;&gt;#6068&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7029&quot;&gt;#7029&lt;/a&gt;) (Annie Zhang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/46cb690&quot;&gt;46cb690&lt;/a&gt; New: &lt;code&gt;no-restricted-properties&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3218&quot;&gt;#3218&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7017&quot;&gt;#7017&lt;/a&gt;) (Eli White)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8277357&quot;&gt;8277357&lt;/a&gt; New: &lt;code&gt;line-comment-position&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6077&quot;&gt;#6077&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6953&quot;&gt;#6953&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1f0d76&quot;&gt;c1f0d76&lt;/a&gt; New: &lt;code&gt;lines-around-directive&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6069&quot;&gt;#6069&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6998&quot;&gt;#6998&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/08fa538&quot;&gt;08fa538&lt;/a&gt; Update: fix false negative of &lt;code&gt;arrow-spacing&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7079&quot;&gt;#7079&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7080&quot;&gt;#7080&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cec65e3&quot;&gt;cec65e3&lt;/a&gt; Update: add fixer for no-floating-decimal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7070&quot;&gt;#7070&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7081&quot;&gt;#7081&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/538d258&quot;&gt;538d258&lt;/a&gt; Update: make no-implicit-coercion support autofixing. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7056&quot;&gt;#7056&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7061&quot;&gt;#7061&lt;/a&gt;) (Eli White)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/883316d&quot;&gt;883316d&lt;/a&gt; Update: add fixer for prefer-arrow-callback (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7002&quot;&gt;#7002&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7004&quot;&gt;#7004&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7502eed&quot;&gt;7502eed&lt;/a&gt; Update: auto-fix for &lt;code&gt;comma-style&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6941&quot;&gt;#6941&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6957&quot;&gt;#6957&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/645dda5&quot;&gt;645dda5&lt;/a&gt; Update: add fixer for dot-notation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7014&quot;&gt;#7014&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7054&quot;&gt;#7054&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/656bb6e&quot;&gt;656bb6e&lt;/a&gt; Update: add fixer for newline-before-return (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5958&quot;&gt;#5958&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7050&quot;&gt;#7050&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e118728&quot;&gt;e118728&lt;/a&gt; Update: add fixer for wrap-regex (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7013&quot;&gt;#7013&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7048&quot;&gt;#7048&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f4fcd1e&quot;&gt;f4fcd1e&lt;/a&gt; Update: add more &lt;code&gt;indent&lt;/code&gt; options for functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6052&quot;&gt;#6052&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7043&quot;&gt;#7043&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/657eee5&quot;&gt;657eee5&lt;/a&gt; Update: add fixer for new-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6994&quot;&gt;#6994&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7047&quot;&gt;#7047&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff19aa9&quot;&gt;ff19aa9&lt;/a&gt; Update: improve &lt;code&gt;max-statements-per-line&lt;/code&gt; message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6287&quot;&gt;#6287&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7044&quot;&gt;#7044&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/22c7e09&quot;&gt;22c7e09&lt;/a&gt; Update: no-magic-numbers false negative on reassigned vars (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4616&quot;&gt;#4616&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7028&quot;&gt;#7028&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/be29599&quot;&gt;be29599&lt;/a&gt; Update: Throw error if whitespace found in plugin name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6854&quot;&gt;#6854&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6960&quot;&gt;#6960&lt;/a&gt;) (Jesse Ostrander)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/00b3042&quot;&gt;00b3042&lt;/a&gt; Update: Pass file path to parse function (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5344&quot;&gt;#5344&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7024&quot;&gt;#7024&lt;/a&gt;) (Annie Zhang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e77f16&quot;&gt;8e77f16&lt;/a&gt; Update: &lt;code&gt;new-parens&lt;/code&gt; false negative (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6997&quot;&gt;#6997&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6999&quot;&gt;#6999&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2a3f699&quot;&gt;2a3f699&lt;/a&gt; Fix: Column number for no-multiple-empty-lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7086&quot;&gt;#7086&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7088&quot;&gt;#7088&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d9513b7&quot;&gt;d9513b7&lt;/a&gt; Fix: Allow linting of .hidden files/folders (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4828&quot;&gt;#4828&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6844&quot;&gt;#6844&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2657846&quot;&gt;2657846&lt;/a&gt; Fix: &lt;code&gt;no-console&lt;/code&gt; ignores user-defined console (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7010&quot;&gt;#7010&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7058&quot;&gt;#7058&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f995c3&quot;&gt;1f995c3&lt;/a&gt; Fix: no-implicit-coercion string concat false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7057&quot;&gt;#7057&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7060&quot;&gt;#7060&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4063a79&quot;&gt;4063a79&lt;/a&gt; Fix: Rule message placeholders can be inside braces (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6988&quot;&gt;#6988&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7041&quot;&gt;#7041&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/256c4a2&quot;&gt;256c4a2&lt;/a&gt; Fix: Allow separate mode option for multiline and align (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6691&quot;&gt;#6691&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6991&quot;&gt;#6991&lt;/a&gt;) (Annie Zhang)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6947299&quot;&gt;6947299&lt;/a&gt; Docs: Add info about closing accepted issues to docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6979&quot;&gt;#6979&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7089&quot;&gt;#7089&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d30157a&quot;&gt;d30157a&lt;/a&gt; Docs: Add link to awesome-eslint in integrations page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7090&quot;&gt;#7090&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/457be1b&quot;&gt;457be1b&lt;/a&gt; Docs: Update so issues are not required (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7015&quot;&gt;#7015&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7072&quot;&gt;#7072&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6718749&quot;&gt;6718749&lt;/a&gt; Docs: Clarify that &lt;code&gt;es6&lt;/code&gt; env also sets &lt;code&gt;ecmaVersion&lt;/code&gt; to 6 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7067&quot;&gt;#7067&lt;/a&gt;) (Jérémie Astori)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52e8d9c&quot;&gt;52e8d9c&lt;/a&gt; Docs: Clean up sort-vars (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7045&quot;&gt;#7045&lt;/a&gt;) (Matthew Dunsdon)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3f13325&quot;&gt;3f13325&lt;/a&gt; Docs: Add kaicataldo and JamesHenry to our teams (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7039&quot;&gt;#7039&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/326f457&quot;&gt;326f457&lt;/a&gt; Docs: Add missing ‘to’ in no-restricted-modules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7022&quot;&gt;#7022&lt;/a&gt;) (Oskar Risberg)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/61f1de0&quot;&gt;61f1de0&lt;/a&gt; Docs: Fix typo in no-debugger (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7019&quot;&gt;#7019&lt;/a&gt;) (Denis Ciccale)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a989a7c&quot;&gt;a989a7c&lt;/a&gt; Docs: Declaring dependency on eslint in shared config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6617&quot;&gt;#6617&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6985&quot;&gt;#6985&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6869c60&quot;&gt;6869c60&lt;/a&gt; Docs: Fix minor typo in no-extra-parens doc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6992&quot;&gt;#6992&lt;/a&gt;) (Jérémie Astori)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/28f1619&quot;&gt;28f1619&lt;/a&gt; Docs: Update the example of SwitchCase (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6981&quot;&gt;#6981&lt;/a&gt;) (fish)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fa760f9&quot;&gt;fa760f9&lt;/a&gt; Chore: no-regex-spaces uses internal rule message format (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/7052&quot;&gt;#7052&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/7053&quot;&gt;#7053&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4126f12&quot;&gt;4126f12&lt;/a&gt; Chore: Rule messages use internal rule message format (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6977&quot;&gt;#6977&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6989&quot;&gt;#6989&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.4.0 released</title>
    <link href="https://eslint.org/blog/2016/08/eslint-v3.4.0-released/"/>
    <updated>2016-08-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/08/eslint-v3.4.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;fix-for-configuring-scoped-plugin-rules&quot; tabindex=&quot;-1&quot;&gt;Fix For Configuring Scoped Plugin Rules&lt;/h3&gt;
&lt;p&gt;We discovered a significant bug (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6362&quot;&gt;#6362&lt;/a&gt;) when using scoped plugins. Scoped plugins use npm scopes such as &lt;code&gt;@foo/eslint-plugin-bar&lt;/code&gt;. Due to a bug in ESLint, if you had a rule &lt;code&gt;baz&lt;/code&gt; in the plugin &lt;code&gt;@foo/eslint-plugin-bar&lt;/code&gt;, you would have to configure it without the scope, such as:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  &lt;span class=&quot;token key atrule&quot;&gt;bar/baz&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; error&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is problematic because it’s possible that an unscoped plugin &lt;code&gt;eslint-plugin-bar&lt;/code&gt; might exist and need to be configured in the same way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Starting in this release, you should now configure scoped plugin rules using the scope as a prefix. The previous example should now be written as:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;  @foo/bar/baz&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; error&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The other format will continue work until we release ESLint v4.0.0, at which point only the format using the package scope will work. We encourage you to update your configuration files as quickly as possible so as not to be caught up in the change for version 4.0.0.&lt;/p&gt;
&lt;h3 id=&quot;performance-improvements&quot; tabindex=&quot;-1&quot;&gt;Performance Improvements&lt;/h3&gt;
&lt;p&gt;We’ve been steadily improving the performance of traversing directories in ESLint. Previously, we made a change that dramatically improved the speed of directory traversal for those who weren’t using &lt;code&gt;.eslintignore&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5679&quot;&gt;#5679&lt;/a&gt;). In this release, we’ve continued on to improve the speed for those using &lt;code&gt;.eslintignore&lt;/code&gt; as well (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6710&quot;&gt;#6710&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id=&quot;new-ways-to-configure-ecmascript-version&quot; tabindex=&quot;-1&quot;&gt;New Ways to Configure ECMAScript Version&lt;/h3&gt;
&lt;p&gt;ESLint has supported the &lt;code&gt;ecmaVersion&lt;/code&gt; property for specifying which versions of ECMAScript syntax to enable. Prior to this release, you could use &lt;code&gt;3&lt;/code&gt;, &lt;code&gt;5&lt;/code&gt;, &lt;code&gt;6&lt;/code&gt;, and &lt;code&gt;7&lt;/code&gt;. However, the official ECMAScript standard is now being defined by year, so some new users found this confusing. As such, we’ve added the ability to use &lt;code&gt;2015&lt;/code&gt; and &lt;code&gt;2016&lt;/code&gt; in the &lt;code&gt;ecmaVersion&lt;/code&gt; field (these correspond to &lt;code&gt;6&lt;/code&gt; and &lt;code&gt;7&lt;/code&gt;, respectively), so that going forward we can use the more appropriate year-based values.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;The following new rules were added in this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/symbol-description&quot;&gt;&lt;code&gt;symbol-description&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/class-methods-use-this&quot;&gt;&lt;code&gt;class-methods-use-this&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/21ab784&quot;&gt;21ab784&lt;/a&gt; New: do not remove non visited files from cache. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6780&quot;&gt;#6780&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6921&quot;&gt;#6921&lt;/a&gt;) (Roy Riojas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d268f1&quot;&gt;0d268f1&lt;/a&gt; New: &lt;code&gt;symbol-description&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6778&quot;&gt;#6778&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6825&quot;&gt;#6825&lt;/a&gt;) (Jarek Rencz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a5189a6&quot;&gt;a5189a6&lt;/a&gt; New: &lt;code&gt;class-methods-use-this&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5139&quot;&gt;#5139&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6881&quot;&gt;#6881&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c210510&quot;&gt;c210510&lt;/a&gt; Update: add fixer for no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6944&quot;&gt;#6944&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6950&quot;&gt;#6950&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6fd064&quot;&gt;d6fd064&lt;/a&gt; Update: Add never option to multiline-ternary (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6751&quot;&gt;#6751&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6905&quot;&gt;#6905&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf2242c&quot;&gt;cf2242c&lt;/a&gt; Update: &lt;code&gt;requireStringLiterals&lt;/code&gt; option for &lt;code&gt;valid-typeof&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6698&quot;&gt;#6698&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6923&quot;&gt;#6923&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1563808&quot;&gt;1563808&lt;/a&gt; Update: add support for ecmaVersion 20xx (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6750&quot;&gt;#6750&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6907&quot;&gt;#6907&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ca3d448&quot;&gt;ca3d448&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; false negative about &lt;code&gt;eslintUsed&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5837&quot;&gt;#5837&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6971&quot;&gt;#6971&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e522be&quot;&gt;3e522be&lt;/a&gt; Fix: false negative of &lt;code&gt;indent&lt;/code&gt; with &lt;code&gt;else if&lt;/code&gt; statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6956&quot;&gt;#6956&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6965&quot;&gt;#6965&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c710c9&quot;&gt;3c710c9&lt;/a&gt; Fix: rename “AirBnB” =&amp;gt; “Airbnb” init choice (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6969&quot;&gt;#6969&lt;/a&gt;) (Harrison Shoff)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7660b39&quot;&gt;7660b39&lt;/a&gt; Fix: &lt;code&gt;object-curly-spacing&lt;/code&gt; for type annotations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6940&quot;&gt;#6940&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6945&quot;&gt;#6945&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a1763c&quot;&gt;3a1763c&lt;/a&gt; Fix: enable &lt;code&gt;@scope/plugin/ruleId&lt;/code&gt;-style specifier (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6362&quot;&gt;#6362&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6939&quot;&gt;#6939&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a063d4e&quot;&gt;a063d4e&lt;/a&gt; Fix: no-cond-assign within a function expression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6908&quot;&gt;#6908&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6909&quot;&gt;#6909&lt;/a&gt;) (Patrick McElhaney)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8851ddd&quot;&gt;8851ddd&lt;/a&gt; Fix: Improve pref of globbing by inheriting glob.GlobSync (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6710&quot;&gt;#6710&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6783&quot;&gt;#6783&lt;/a&gt;) (Kael Zhang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8561389&quot;&gt;8561389&lt;/a&gt; Fix: &lt;code&gt;no-trailing-spaces&lt;/code&gt; wrong fixing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6933&quot;&gt;#6933&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6937&quot;&gt;#6937&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1153955&quot;&gt;1153955&lt;/a&gt; Docs: Draft of JSCS migration guide (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5859&quot;&gt;#5859&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6942&quot;&gt;#6942&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2dfb290&quot;&gt;2dfb290&lt;/a&gt; Docs: Distinguish examples in rules under Stylistic Issues part 7 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6760&quot;&gt;#6760&lt;/a&gt;) (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a92be5&quot;&gt;6a92be5&lt;/a&gt; Docs: Update semantic versioning policy (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6935&quot;&gt;#6935&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d8b770c&quot;&gt;d8b770c&lt;/a&gt; Docs: Change rule descriptions for consistent casing (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6915&quot;&gt;#6915&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/16db93a&quot;&gt;16db93a&lt;/a&gt; Build: Tag docs, publish release notes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6892&quot;&gt;#6892&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6934&quot;&gt;#6934&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0cf1d55&quot;&gt;0cf1d55&lt;/a&gt; Chore: Fix object-shorthand errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6958&quot;&gt;#6958&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6959&quot;&gt;#6959&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c676322&quot;&gt;c676322&lt;/a&gt; Chore: Use object-shorthand batch 3 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6914&quot;&gt;#6914&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.3.1 released</title>
    <link href="https://eslint.org/blog/2016/08/eslint-v3.3.1-released/"/>
    <updated>2016-08-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/08/eslint-v3.3.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9b3446&quot;&gt;b9b3446&lt;/a&gt; Fix: sort-keys ignores destructuring patterns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6896&quot;&gt;#6896&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6899&quot;&gt;#6899&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02a00d6&quot;&gt;02a00d6&lt;/a&gt; Docs: clarify rule details for no-template-curly-in-string (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6900&quot;&gt;#6900&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fe3a4f&quot;&gt;3fe3a4f&lt;/a&gt; Docs: Update options in &lt;code&gt;object-shorthand&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6898&quot;&gt;#6898&lt;/a&gt;) (Grant Snodgrass)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2f06be&quot;&gt;a2f06be&lt;/a&gt; Build: optimize rule page title for small browser tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6888&quot;&gt;#6888&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6904&quot;&gt;#6904&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd09c96&quot;&gt;cd09c96&lt;/a&gt; Chore: Use object-shorthand batch 2 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6897&quot;&gt;#6897&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2841008&quot;&gt;2841008&lt;/a&gt; Chore: Use object-shorthand batch 1 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6893&quot;&gt;#6893&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.3.0 released</title>
    <link href="https://eslint.org/blog/2016/08/eslint-v3.3.0-released/"/>
    <updated>2016-08-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/08/eslint-v3.3.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h2 id=&quot;deprecated-rules&quot; tabindex=&quot;-1&quot;&gt;Deprecated Rules&lt;/h2&gt;
&lt;p&gt;In continuing our work towards JSCS compatibility and reviewing the current rules list, we decided to deprecate several rules and replace them with new rules. In some cases there was just confusion about the existing rule and in others there were changes necessary for JSCS compatibility. Per our &lt;a href=&quot;https://eslint.org/docs/user-guide/rule-deprecation&quot;&gt;rule deprecation policy&lt;/a&gt;, the deprecated rules will remain as part of ESLint until at least May 2017, at which point we will evaluate removing those rules.&lt;/p&gt;
&lt;p&gt;We recommend you upgrade your configurations to use the new rules.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Deprecated Rule&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Replaced By&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-native-reassign&quot;&gt;&lt;code&gt;no-native-reassign&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-global-assign&quot;&gt;`no-global-assign’&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-negated-in-lhs&quot;&gt;&lt;code&gt;no-negated-in-lhs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-negation&quot;&gt;`no-unsafe-negation’&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-spaced-func&quot;&gt;&lt;code&gt;no-spaced-func&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;https://eslint.org/docs/rules/func-call-spacing&quot;&gt;`func-call-spacing’&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/sort-keys&quot;&gt;&lt;code&gt;sort-keys&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-template-curly-in-string&quot;&gt;&lt;code&gt;no-template-curly-in-string&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e456fd3&quot;&gt;e456fd3&lt;/a&gt; New: &lt;code&gt;sort-keys&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6076&quot;&gt;#6076&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6800&quot;&gt;#6800&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8ab8f1&quot;&gt;f8ab8f1&lt;/a&gt; New: func-call-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6080&quot;&gt;#6080&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6749&quot;&gt;#6749&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/be68f0b&quot;&gt;be68f0b&lt;/a&gt; New: no-template-curly-in-string rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6186&quot;&gt;#6186&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6767&quot;&gt;#6767&lt;/a&gt;) (Jeroen Engels)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ef839e&quot;&gt;5ef839e&lt;/a&gt; New: Add consistent and …-as-needed to object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5438&quot;&gt;#5438&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5439&quot;&gt;#5439&lt;/a&gt;) (Martijn de Haan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aef18b4&quot;&gt;aef18b4&lt;/a&gt; New: &lt;code&gt;no-unsafe-negation&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2716&quot;&gt;#2716&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6789&quot;&gt;#6789&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b17459&quot;&gt;2b17459&lt;/a&gt; New: &lt;code&gt;no-global-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6586&quot;&gt;#6586&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6746&quot;&gt;#6746&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebf8441&quot;&gt;ebf8441&lt;/a&gt; Update: &lt;code&gt;prefer-rest-params&lt;/code&gt; relax for member accesses (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5990&quot;&gt;#5990&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6871&quot;&gt;#6871&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df01c4f&quot;&gt;df01c4f&lt;/a&gt; Update: Add regex support for exceptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5187&quot;&gt;#5187&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6883&quot;&gt;#6883&lt;/a&gt;) (Annie Zhang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e879fc&quot;&gt;3e879fc&lt;/a&gt; Update: Rule “eqeqeq” to have more specific null handling (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6543&quot;&gt;#6543&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6849&quot;&gt;#6849&lt;/a&gt;) (Simon Sturmer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1ecd2a3&quot;&gt;1ecd2a3&lt;/a&gt; Update: improve error message in &lt;code&gt;no-control-regex&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6839&quot;&gt;#6839&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d610d6c&quot;&gt;d610d6c&lt;/a&gt; Update: make &lt;code&gt;max-lines&lt;/code&gt; report the actual number of lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6766&quot;&gt;#6766&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6764&quot;&gt;#6764&lt;/a&gt;) (Jarek Rencz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bf0afcb&quot;&gt;bf0afcb&lt;/a&gt; Update: validate void operator in no-constant-condition (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5726&quot;&gt;#5726&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6837&quot;&gt;#6837&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/90f78f4&quot;&gt;90f78f4&lt;/a&gt; Update: add &lt;code&gt;props&lt;/code&gt; option to &lt;code&gt;no-self-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6718&quot;&gt;#6718&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6721&quot;&gt;#6721&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/30d71d6&quot;&gt;30d71d6&lt;/a&gt; Update: ‘requireForBlockBody’ modifier for ‘arrow-parens’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6557&quot;&gt;#6557&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6558&quot;&gt;#6558&lt;/a&gt;) (Nicolas Froidure)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e524d16&quot;&gt;e524d16&lt;/a&gt; Update: camelcase rule fix for import declarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6755&quot;&gt;#6755&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6784&quot;&gt;#6784&lt;/a&gt;) (Lorenzo Zottar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f3509d&quot;&gt;8f3509d&lt;/a&gt; Update: make &lt;code&gt;eslint:all&lt;/code&gt; excluding deprecated rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6734&quot;&gt;#6734&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6756&quot;&gt;#6756&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/055742c&quot;&gt;055742c&lt;/a&gt; Fix: &lt;code&gt;no-dupe-keys&lt;/code&gt; type errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6886&quot;&gt;#6886&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6889&quot;&gt;#6889&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/11395ca&quot;&gt;11395ca&lt;/a&gt; Fix: &lt;code&gt;no-dupe-keys&lt;/code&gt; false negative (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6801&quot;&gt;#6801&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6863&quot;&gt;#6863&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d47c505&quot;&gt;d47c505&lt;/a&gt; Fix: &lt;code&gt;newline-after-var&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6834&quot;&gt;#6834&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6847&quot;&gt;#6847&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7e1bf01&quot;&gt;7e1bf01&lt;/a&gt; Fix: update peerDependencies of airbnb option for &lt;code&gt;--init&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6843&quot;&gt;#6843&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6846&quot;&gt;#6846&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8581f4f&quot;&gt;8581f4f&lt;/a&gt; Fix: &lt;code&gt;no-invalid-this&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6824&quot;&gt;#6824&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6827&quot;&gt;#6827&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e37bbd8&quot;&gt;e37bbd8&lt;/a&gt; Docs: Remove duplicate statement (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6878&quot;&gt;#6878&lt;/a&gt;) (Richard Käll)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/117e7aa&quot;&gt;117e7aa&lt;/a&gt; Docs: Remove incorrect “constructor” statement from &lt;code&gt;no-new-symbol&lt;/code&gt; docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6830&quot;&gt;#6830&lt;/a&gt;) (Jarek Rencz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d94e945&quot;&gt;d94e945&lt;/a&gt; Docs: Update Getting Started w/ Readme installation instructions (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6823&quot;&gt;#6823&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dfbc112&quot;&gt;dfbc112&lt;/a&gt; Upgrade: proxyquire to 1.7.10 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6821&quot;&gt;#6821&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6822&quot;&gt;#6822&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/683ac56&quot;&gt;683ac56&lt;/a&gt; Build: Add CI release scripts (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6884&quot;&gt;#6884&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6885&quot;&gt;#6885&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e8cb7f9&quot;&gt;e8cb7f9&lt;/a&gt; Chore: use eslint-plugin-node (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6862&quot;&gt;#6862&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b256c50&quot;&gt;b256c50&lt;/a&gt; Chore: Fix glob for core js files for lint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6870&quot;&gt;#6870&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6872&quot;&gt;#6872&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/80789ab&quot;&gt;80789ab&lt;/a&gt; Chore: don’t throw if rule is in old format (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6848&quot;&gt;#6848&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6850&quot;&gt;#6850&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cdded07&quot;&gt;cdded07&lt;/a&gt; Chore: use native &lt;code&gt;Object.assign&lt;/code&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6832&quot;&gt;#6832&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/579ec49&quot;&gt;579ec49&lt;/a&gt; Chore: Add link to rule change guidelines in “needs info” template (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6829&quot;&gt;#6829&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6831&quot;&gt;#6831&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c5e911&quot;&gt;4c5e911&lt;/a&gt; Chore: enable &lt;code&gt;prefer-const&lt;/code&gt; and apply it to our codebase (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6805&quot;&gt;#6805&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.2.2 released</title>
    <link href="https://eslint.org/blog/2016/08/eslint-v3.2.2-released/"/>
    <updated>2016-08-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/08/eslint-v3.2.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/46b14cd&quot;&gt;46b14cd&lt;/a&gt; Fix: ignore MemberExpression in VariableDeclarators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6795&quot;&gt;#6795&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6815&quot;&gt;#6815&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/510ce4b&quot;&gt;510ce4b&lt;/a&gt; Upgrade: file-entry-cache@^1.3.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6816&quot;&gt;#6816&lt;/a&gt;, refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6780&quot;&gt;#6780&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6819&quot;&gt;#6819&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.2.1 released</title>
    <link href="https://eslint.org/blog/2016/08/eslint-v3.2.1-released/"/>
    <updated>2016-08-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/08/eslint-v3.2.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4ca809e&quot;&gt;4ca809e&lt;/a&gt; Fix: Normalizes messages so all end with a period (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6762&quot;&gt;#6762&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6807&quot;&gt;#6807&lt;/a&gt;) (Patrick McElhaney)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c7488ac&quot;&gt;c7488ac&lt;/a&gt; Fix: Make MemberExpression option opt-in (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6797&quot;&gt;#6797&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6798&quot;&gt;#6798&lt;/a&gt;) (Rich Trott)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38d0d23&quot;&gt;38d0d23&lt;/a&gt; Docs: clarify minor releases and suggest using `~ to version (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6804&quot;&gt;#6804&lt;/a&gt;) (Henry Zhu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/715e8fa&quot;&gt;715e8fa&lt;/a&gt; Docs: Update issue closing policy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6765&quot;&gt;#6765&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6808&quot;&gt;#6808&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/261a9f3&quot;&gt;261a9f3&lt;/a&gt; Docs: Update JSCS status in README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6802&quot;&gt;#6802&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ae0887&quot;&gt;5ae0887&lt;/a&gt; Docs: Update &lt;a href=&quot;http://no-void.md/&quot;&gt;no-void.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6799&quot;&gt;#6799&lt;/a&gt;) (Daniel Hritzkiv)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/584577a&quot;&gt;584577a&lt;/a&gt; Build: Pin file-entry-cache to avoid licence issue (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6816&quot;&gt;#6816&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6818&quot;&gt;#6818&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/288f7bf&quot;&gt;288f7bf&lt;/a&gt; Build: Fix site generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6791&quot;&gt;#6791&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6793&quot;&gt;#6793&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.2.0 released</title>
    <link href="https://eslint.org/blog/2016/07/eslint-v3.2.0-released/"/>
    <updated>2016-07-29T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/07/eslint-v3.2.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b22eb5c&quot;&gt;b22eb5c&lt;/a&gt; New: &lt;code&gt;no-tabs&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6079&quot;&gt;#6079&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6772&quot;&gt;#6772&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/26c85dd&quot;&gt;26c85dd&lt;/a&gt; Update: merge warnings of consecutive unreachable nodes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6583&quot;&gt;#6583&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6729&quot;&gt;#6729&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5320a6c&quot;&gt;5320a6c&lt;/a&gt; Update: &lt;code&gt;no-use-before-define&lt;/code&gt; false negative on for-in/of (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6699&quot;&gt;#6699&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6719&quot;&gt;#6719&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/95ea25a&quot;&gt;95ea25a&lt;/a&gt; Update: Check indentation of multi-line chained properties (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1801&quot;&gt;#1801&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5940&quot;&gt;#5940&lt;/a&gt;) (Rich Trott)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/053aa0c&quot;&gt;053aa0c&lt;/a&gt; Update: Added ‘allowSuper’ option to &lt;code&gt;no-underscore-dangle&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6355&quot;&gt;#6355&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6662&quot;&gt;#6662&lt;/a&gt;) (peteward44)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e825458&quot;&gt;e825458&lt;/a&gt; Fix: Rule no-unused-vars had missing period (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6738&quot;&gt;#6738&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6739&quot;&gt;#6739&lt;/a&gt;) (Brian Mock)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/106e40b&quot;&gt;106e40b&lt;/a&gt; Fix: Correct grammar in object-curly-newline reports (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6725&quot;&gt;#6725&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6728&quot;&gt;#6728&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2090cb&quot;&gt;a2090cb&lt;/a&gt; Fix: space-infix-ops doesn’t fail for  type annotations(fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5211&quot;&gt;#5211&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6723&quot;&gt;#6723&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1025772&quot;&gt;1025772&lt;/a&gt; Docs: Add plugin example to disabling with comments guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6742&quot;&gt;#6742&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6747&quot;&gt;#6747&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/628aae4&quot;&gt;628aae4&lt;/a&gt; Docs: fix inconsistent spacing inside block comment (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6768&quot;&gt;#6768&lt;/a&gt;) (Brian Jacobel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2983c32&quot;&gt;2983c32&lt;/a&gt; Docs: Add options to func-names config comments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6748&quot;&gt;#6748&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2f94443&quot;&gt;2f94443&lt;/a&gt; Docs: fix wrong path (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6763&quot;&gt;#6763&lt;/a&gt;) (molee1905)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/99dfd1c&quot;&gt;99dfd1c&lt;/a&gt; Docs: fix grammar issue in rule-changes page (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6761&quot;&gt;#6761&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/71ae64c&quot;&gt;71ae64c&lt;/a&gt; Docs: Clarify cache file deletion (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4943&quot;&gt;#4943&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6712&quot;&gt;#6712&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c36ecf&quot;&gt;9c36ecf&lt;/a&gt; Docs: Add @vitorbal and @platinumazure to development team (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e09d1b8&quot;&gt;e09d1b8&lt;/a&gt; Docs: describe all RuleTester options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4810&quot;&gt;#4810&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6709&quot;&gt;#6709&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6711&quot;&gt;#6711&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/75d2d43&quot;&gt;75d2d43&lt;/a&gt; Docs: Clarify Closure type hint expectation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5231&quot;&gt;#5231&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6714&quot;&gt;#6714&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e7b1e1c&quot;&gt;e7b1e1c&lt;/a&gt; Docs: Edit issue/PR waiting period docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6009&quot;&gt;#6009&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6715&quot;&gt;#6715&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f916ae5&quot;&gt;f916ae5&lt;/a&gt; Docs: Fix multiline-ternary typos (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6704&quot;&gt;#6704&lt;/a&gt;) (Cédric Malard)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2438ee2&quot;&gt;2438ee2&lt;/a&gt; Upgrade: Update markdownlint dependency to 0.2.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6781&quot;&gt;#6781&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6782&quot;&gt;#6782&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/181b26a&quot;&gt;181b26a&lt;/a&gt; Build: Remove support for Node v5 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6743&quot;&gt;#6743&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6744&quot;&gt;#6744&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8929045&quot;&gt;8929045&lt;/a&gt; Build: Automatically generate rule index (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2860&quot;&gt;#2860&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6658&quot;&gt;#6658&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fc0018&quot;&gt;4fc0018&lt;/a&gt; Chore: dogfooding &lt;code&gt;no-var&lt;/code&gt; rule and remove &lt;code&gt;var&lt;/code&gt;s (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6757&quot;&gt;#6757&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ddea63a&quot;&gt;ddea63a&lt;/a&gt; Chore: Updated no-control-regex tests to cover all cases (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6438&quot;&gt;#6438&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6752&quot;&gt;#6752&lt;/a&gt;) (Efe Gürkan YALAMAN)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e00754c&quot;&gt;e00754c&lt;/a&gt; Chore: Dogfooding ES6 rules (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6735&quot;&gt;#6735&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a157f47&quot;&gt;a157f47&lt;/a&gt; Chore: Update CLIEngine option desc (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5179&quot;&gt;#5179&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6713&quot;&gt;#6713&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a0727f9&quot;&gt;a0727f9&lt;/a&gt; Chore: fix &lt;code&gt;.gitignore&lt;/code&gt; for vscode (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6383&quot;&gt;#6383&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6720&quot;&gt;#6720&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c64b0c2&quot;&gt;c64b0c2&lt;/a&gt; Chore: First ES6 refactoring (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6407&quot;&gt;#6407&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6570&quot;&gt;#6570&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.1.1 released</title>
    <link href="https://eslint.org/blog/2016/07/eslint-v3.1.1-released/"/>
    <updated>2016-07-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/07/eslint-v3.1.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/565e584&quot;&gt;565e584&lt;/a&gt; Fix: &lt;code&gt;eslint:all&lt;/code&gt; causes regression in 3.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6687&quot;&gt;#6687&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6696&quot;&gt;#6696&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb90359&quot;&gt;cb90359&lt;/a&gt; Fix: Allow named recursive functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6616&quot;&gt;#6616&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6667&quot;&gt;#6667&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3f206dd&quot;&gt;3f206dd&lt;/a&gt; Fix: &lt;code&gt;balanced&lt;/code&gt; false positive in &lt;code&gt;spaced-comment&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6689&quot;&gt;#6689&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6692&quot;&gt;#6692&lt;/a&gt;) (Grant Snodgrass)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f96086&quot;&gt;9f96086&lt;/a&gt; Fix: Escape control characters in XML. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6673&quot;&gt;#6673&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6672&quot;&gt;#6672&lt;/a&gt;) (George Chung)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/57f1676&quot;&gt;57f1676&lt;/a&gt; Docs: Add missing brackets from code examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6700&quot;&gt;#6700&lt;/a&gt;) (Plusb Preco)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/124f066&quot;&gt;124f066&lt;/a&gt; Chore: Remove fixable key from multiline-ternary metadata (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6683&quot;&gt;#6683&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6688&quot;&gt;#6688&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>JSCS End of Life</title>
    <link href="https://eslint.org/blog/2016/07/jscs-end-of-life/"/>
    <updated>2016-07-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/07/jscs-end-of-life/</id>
    <content type="html">&lt;p&gt;When we announced that &lt;a href=&quot;https://eslint.org/blog/2016/04/welcoming-jscs-to-eslint&quot;&gt;JSCS was joining ESLint&lt;/a&gt;, it was with a stated support period for JSCS of three months. Those three months have now passed and JSCS is now considered fully deprecated.&lt;/p&gt;
&lt;h2 id=&quot;what-end-of-life-means&quot; tabindex=&quot;-1&quot;&gt;What End of Life Means&lt;/h2&gt;
&lt;p&gt;The end of life for JSCS means:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We will no longer be evaluating issues on JSCS&lt;/li&gt;
&lt;li&gt;Pull requests to JSCS will no longer be reviewed or merged&lt;/li&gt;
&lt;li&gt;There will be no further JSCS releases&lt;/li&gt;
&lt;li&gt;The JSCS GitHub repo will remain available as an archive of the JSCS source code&lt;/li&gt;
&lt;li&gt;The JSCS website will remain available as an archive of JSCS documentation&lt;/li&gt;
&lt;li&gt;Existing versions of JSCS will continue to be available and functional&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The JSCS developers will now be focusing their time and energy on ESLint, including JSCS compatibility issues.&lt;/p&gt;
&lt;h2 id=&quot;jscs-compatibility-in-eslint&quot; tabindex=&quot;-1&quot;&gt;JSCS Compatibility in ESLint&lt;/h2&gt;
&lt;p&gt;We have setup a &lt;a href=&quot;https://github.com/eslint/eslint/milestone/15&quot;&gt;milestone&lt;/a&gt; for tracking all of our JSCS compatibility issues. At the time of this post, we are at 20% complete and are continuing to make progress. If you’re a JSCS user, we can use your help to make sure you have the best possible experience when switching to ESLint. Please feel free to review the issues in our milestone and add your thoughts (or submit a pull request).&lt;/p&gt;
&lt;p&gt;Our plan is to continue prioritizing JSCS compatibility work over everything else until complete. We’re also working on documentation and tooling to help automate the switch from JSCS to ESLint. We recommend holding off on switching from JSCS to ESLint until most of the compatibility work has been completed (we will make an announcement when that happens).&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.1.0 released</title>
    <link href="https://eslint.org/blog/2016/07/eslint-v3.1.0-released/"/>
    <updated>2016-07-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/07/eslint-v3.1.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/720686b&quot;&gt;720686b&lt;/a&gt; New: &lt;code&gt;endLine&lt;/code&gt; and &lt;code&gt;endColumn&lt;/code&gt; of the lint result. (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3307&quot;&gt;#3307&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6640&quot;&gt;#6640&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8a263ae&quot;&gt;8a263ae&lt;/a&gt; New: multiline-ternary rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6066&quot;&gt;#6066&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6590&quot;&gt;#6590&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38639bf&quot;&gt;38639bf&lt;/a&gt; Update: make &lt;code&gt;no-var&lt;/code&gt; fixable (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6639&quot;&gt;#6639&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6644&quot;&gt;#6644&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ba75d5&quot;&gt;2ba75d5&lt;/a&gt; Update: relax outerIIFEBody definition (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6613&quot;&gt;#6613&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6653&quot;&gt;#6653&lt;/a&gt;) (Stephen E. Baker)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4adb15f&quot;&gt;4adb15f&lt;/a&gt; Update: Add &lt;code&gt;balanced&lt;/code&gt; option to &lt;code&gt;spaced-comment&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4133&quot;&gt;#4133&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6575&quot;&gt;#6575&lt;/a&gt;) (Annie Zhang)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e951303&quot;&gt;e951303&lt;/a&gt; Update: Adding new &lt;code&gt;key-spacing&lt;/code&gt; option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5613&quot;&gt;#5613&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5907&quot;&gt;#5907&lt;/a&gt;) (Kyle Mendes)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e8f8c6c&quot;&gt;e8f8c6c&lt;/a&gt; Fix: incorrect exitCode when eslint is called with --stdin (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6677&quot;&gt;#6677&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6682&quot;&gt;#6682&lt;/a&gt;) (Steven Humphrey)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dfc20e9&quot;&gt;dfc20e9&lt;/a&gt; Fix: &lt;code&gt;no-unused-vars&lt;/code&gt; false positive in loop (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6646&quot;&gt;#6646&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6649&quot;&gt;#6649&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8b4e40&quot;&gt;a8b4e40&lt;/a&gt; Fix: Install required eslint plugin for “standard” guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6656&quot;&gt;#6656&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6657&quot;&gt;#6657&lt;/a&gt;) (Feross Aboukhadijeh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/baeb313&quot;&gt;baeb313&lt;/a&gt; Fix: Warning behavior for executeOnText (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6611&quot;&gt;#6611&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6632&quot;&gt;#6632&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ca323cf&quot;&gt;ca323cf&lt;/a&gt; Fix: Use default assertion messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6532&quot;&gt;#6532&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6615&quot;&gt;#6615&lt;/a&gt;) (Dmitrii Abramov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2bdf22c&quot;&gt;2bdf22c&lt;/a&gt; Fix: Do not throw exception if baseConfig is provided (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6605&quot;&gt;#6605&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6625&quot;&gt;#6625&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/089ee2c&quot;&gt;089ee2c&lt;/a&gt; Docs: fix typos,wrong path,backticks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6663&quot;&gt;#6663&lt;/a&gt;) (molee1905)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ef827d2&quot;&gt;ef827d2&lt;/a&gt; Docs: Add another pre-commit hook to integrations (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6666&quot;&gt;#6666&lt;/a&gt;) (David Alan Hjelle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a343b3c&quot;&gt;a343b3c&lt;/a&gt; Docs: Fix option typo in no-underscore-dangle (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6674&quot;&gt;#6674&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6675&quot;&gt;#6675&lt;/a&gt;) (Luke Page)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b13c25&quot;&gt;1b13c25&lt;/a&gt; Docs: fix incorrect example being mark as correct (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6660&quot;&gt;#6660&lt;/a&gt;) (David Björklund)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54faa46&quot;&gt;54faa46&lt;/a&gt; Docs: Small tweaks to CLI documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6627&quot;&gt;#6627&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6642&quot;&gt;#6642&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e108850&quot;&gt;e108850&lt;/a&gt; Docs: Added examples and structure to &lt;code&gt;padded-blocks&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6628&quot;&gt;#6628&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6643&quot;&gt;#6643&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/350e1c0&quot;&gt;350e1c0&lt;/a&gt; Docs: Typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6650&quot;&gt;#6650&lt;/a&gt;) (Peter Rood)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b837c92&quot;&gt;b837c92&lt;/a&gt; Docs: Correct a term in &lt;a href=&quot;http://max-len.md/&quot;&gt;max-len.md&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6637&quot;&gt;#6637&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6641&quot;&gt;#6641&lt;/a&gt;) (Vse Mozhet Byt)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10c3e91&quot;&gt;10c3e91&lt;/a&gt; Docs: Remove reference from 3.0.0 migration guide (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6605&quot;&gt;#6605&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6618&quot;&gt;#6618&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5010694&quot;&gt;5010694&lt;/a&gt; Docs: Removed non-existing resource (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6609&quot;&gt;#6609&lt;/a&gt;) (Moritz Kröger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6d40d85&quot;&gt;6d40d85&lt;/a&gt; Docs: Note that PR requires ACCEPTED issue (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6568&quot;&gt;#6568&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6604&quot;&gt;#6604&lt;/a&gt;) (Patrick McElhaney)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e42cacb&quot;&gt;e42cacb&lt;/a&gt; Upgrade: mock-fs to 3.10, fixes for Node 6.3 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6621&quot;&gt;#6621&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6624&quot;&gt;#6624&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/421e4bf&quot;&gt;421e4bf&lt;/a&gt; Chore: combine multiple RegEx replaces with one (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6669&quot;&gt;#6669&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6661&quot;&gt;#6661&lt;/a&gt;) (Sakthipriyan Vairamani)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5985eb2&quot;&gt;5985eb2&lt;/a&gt; Chore: add internal rule that validates meta property (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6383&quot;&gt;#6383&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6608&quot;&gt;#6608&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6004be&quot;&gt;e6004be&lt;/a&gt; Chore: Enable preferType in valid-jsdoc (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5188&quot;&gt;#5188&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6634&quot;&gt;#6634&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.0.1 released</title>
    <link href="https://eslint.org/blog/2016/07/eslint-v3.0.1-released/"/>
    <updated>2016-07-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/07/eslint-v3.0.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/27700cf&quot;&gt;27700cf&lt;/a&gt; Fix: &lt;code&gt;no-unused-vars&lt;/code&gt; false positive around callback (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6576&quot;&gt;#6576&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6579&quot;&gt;#6579&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2cfa1b&quot;&gt;a2cfa1b&lt;/a&gt; Fix: Make outerIIFEBody work correctly (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6585&quot;&gt;#6585&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6596&quot;&gt;#6596&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de3ed84&quot;&gt;de3ed84&lt;/a&gt; Fix: make &lt;code&gt;no-unused-vars&lt;/code&gt; ignore for-in (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2342&quot;&gt;#2342&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6126&quot;&gt;#6126&lt;/a&gt;) (Oleg Gaidarenko)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ef2cbe&quot;&gt;6ef2cbe&lt;/a&gt; Fix: strip Unicode BOM of config files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6556&quot;&gt;#6556&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6580&quot;&gt;#6580&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25fc7b7&quot;&gt;25fc7b7&lt;/a&gt; Fix: false negative of &lt;code&gt;max-len&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6564&quot;&gt;#6564&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6565&quot;&gt;#6565&lt;/a&gt;) (not-an-aardvark)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/124d8a3&quot;&gt;124d8a3&lt;/a&gt; Docs: Pull request template (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6568&quot;&gt;#6568&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e9a2ed9&quot;&gt;e9a2ed9&lt;/a&gt; Docs: Fix rules&#92;id-length exceptions typos (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6397&quot;&gt;#6397&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6593&quot;&gt;#6593&lt;/a&gt;) (GramParallelo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c451a2&quot;&gt;9c451a2&lt;/a&gt; Docs: Use string severity in example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6601&quot;&gt;#6601&lt;/a&gt;) (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7a63717&quot;&gt;7a63717&lt;/a&gt; Docs: Add missing pull request step (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6595&quot;&gt;#6595&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6597&quot;&gt;#6597&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee7fcfa&quot;&gt;ee7fcfa&lt;/a&gt; Docs: Correct type of &lt;code&gt;outerIIFEBody&lt;/code&gt; in &lt;code&gt;indent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6581&quot;&gt;#6581&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6584&quot;&gt;#6584&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f6b8452&quot;&gt;f6b8452&lt;/a&gt; Docs: Distinguish examples in rules under Stylistic Issues part 6 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6567&quot;&gt;#6567&lt;/a&gt;) (Kenneth Williams)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8308c0b&quot;&gt;8308c0b&lt;/a&gt; Chore: remove path-is-absolute in favor of the built-in (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6598&quot;&gt;#6598&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6600&quot;&gt;#6600&lt;/a&gt;) (shinnn)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v3.0.0 released</title>
    <link href="https://eslint.org/blog/2016/07/eslint-v3.0.0-released/"/>
    <updated>2016-07-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/07/eslint-v3.0.0-released/</id>
    <content type="html">&lt;p&gt;As breaking changes can cause problems for some users, we’ve created a &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-3.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;requires-node.js-4-or-higher&quot; tabindex=&quot;-1&quot;&gt;Requires Node.js 4 or higher&lt;/h3&gt;
&lt;p&gt;ESLint v3.0.0 now requires Node.js 4 or higher. Going forward, our plan is always to support the LTS version of Node.js and periodically end-of-life support for older Node.js versions. As both Node.js v0.10 and v0.12 will be out of maintenance mode at the end of 2016, we hope that this change won’t affect too many users.&lt;/p&gt;
&lt;p&gt;If you still need ESLint to run on Node.js &amp;lt; 4, then we recommend staying with ESLint v2.13.1 until you are ready to upgrade your Node.js version.&lt;/p&gt;
&lt;h3 id=&quot;eslint%3Arecommended-update&quot; tabindex=&quot;-1&quot;&gt;&lt;code&gt;eslint:recommended&lt;/code&gt; Update&lt;/h3&gt;
&lt;p&gt;We’ve added some new rules to &lt;code&gt;eslint:recommended&lt;/code&gt; that we believe are important for all users. You can read more about these changes in the &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-3.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;configuration-is-now-required&quot; tabindex=&quot;-1&quot;&gt;Configuration is Now Required&lt;/h3&gt;
&lt;p&gt;One of the most confusing aspects of ESLint for new users has been that ESLint doesn’t do anything unless you provide a configuration. While this is good from a configurability perspective (we don’t force any configuration on you), we still get a lot of reports from new users who don’t understand what’s happening. As such, we decided to make configuration a requirement for ESLint and will not longer run if no configuration is present. Instead, ESLint will output an error when it can’t find a configuration file and no configuration information is provided on the command line. More information is available in the &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-3.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dc5b78b&quot;&gt;dc5b78b&lt;/a&gt; Breaking: Add &lt;code&gt;require-yield&lt;/code&gt; rule to &lt;code&gt;eslint:recommended&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6550&quot;&gt;#6550&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6554&quot;&gt;#6554&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0d4b19&quot;&gt;e0d4b19&lt;/a&gt; Breaking: Error thrown/printed if no config found (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5987&quot;&gt;#5987&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6538&quot;&gt;#6538&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fa05119&quot;&gt;fa05119&lt;/a&gt; Breaking: Update eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6403&quot;&gt;#6403&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6509&quot;&gt;#6509&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58542e4&quot;&gt;58542e4&lt;/a&gt; Breaking: Drop support for node &amp;lt; 4 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4483&quot;&gt;#4483&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6401&quot;&gt;#6401&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f50657e&quot;&gt;f50657e&lt;/a&gt; Breaking: use default for complexity in eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6021&quot;&gt;#6021&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6410&quot;&gt;#6410&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2b2030&quot;&gt;e2b2030&lt;/a&gt; Update: Check RegExp strings for &lt;code&gt;no-regex-spaces&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3586&quot;&gt;#3586&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6379&quot;&gt;#6379&lt;/a&gt;) (Jackson Ray Hamilton)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/397e51b&quot;&gt;397e51b&lt;/a&gt; Update: Implement outerIIFEBody for indent rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6259&quot;&gt;#6259&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6382&quot;&gt;#6382&lt;/a&gt;) (David Shepherd)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1290657&quot;&gt;1290657&lt;/a&gt; Update: &lt;code&gt;no-unused-vars&lt;/code&gt; ignores read it modifies itself (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6348&quot;&gt;#6348&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6535&quot;&gt;#6535&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a7936d&quot;&gt;0a7936d&lt;/a&gt; Update: Add fixer for prefer-const (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6448&quot;&gt;#6448&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6486&quot;&gt;#6486&lt;/a&gt;) (Nick Heiner)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e06a5b5&quot;&gt;e06a5b5&lt;/a&gt; Update: Add fixer for arrow-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4766&quot;&gt;#4766&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6501&quot;&gt;#6501&lt;/a&gt;) (madmed88)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7988427&quot;&gt;7988427&lt;/a&gt; Fix: lib/config.js tests pass if personal config exists (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6559&quot;&gt;#6559&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6566&quot;&gt;#6566&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d601f6b&quot;&gt;d601f6b&lt;/a&gt; Fix: Delete cache only when executing on files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6459&quot;&gt;#6459&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6540&quot;&gt;#6540&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/18663d4&quot;&gt;18663d4&lt;/a&gt; Fix: false negative of &lt;code&gt;no-useless-rename&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6502&quot;&gt;#6502&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6506&quot;&gt;#6506&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4343ae8&quot;&gt;4343ae8&lt;/a&gt; Fix: false negative of &lt;code&gt;object-shorthand&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6429&quot;&gt;#6429&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6434&quot;&gt;#6434&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3b0ab0d&quot;&gt;3b0ab0d&lt;/a&gt; Fix: add warnIgnored flag to CLIEngine.executeOnText (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6302&quot;&gt;#6302&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6305&quot;&gt;#6305&lt;/a&gt;) (Robert Levy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5668236&quot;&gt;5668236&lt;/a&gt; Fix: Allow objectsInObjects exception when destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6469&quot;&gt;#6469&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6470&quot;&gt;#6470&lt;/a&gt;) (Adam Renklint)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/17ac0ae&quot;&gt;17ac0ae&lt;/a&gt; Fix: &lt;code&gt;strict&lt;/code&gt; rule reports a syntax error for ES2016 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6405&quot;&gt;#6405&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6464&quot;&gt;#6464&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e690fb&quot;&gt;3e690fb&lt;/a&gt; Fix: Exit init early if guide is chosen w/ no package.json (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6476&quot;&gt;#6476&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6478&quot;&gt;#6478&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66de9d8&quot;&gt;66de9d8&lt;/a&gt; Docs: Update installation instructions on README (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6569&quot;&gt;#6569&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c05967&quot;&gt;4c05967&lt;/a&gt; Docs: Update rule docs for new format (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5417&quot;&gt;#5417&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6551&quot;&gt;#6551&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/70da5a8&quot;&gt;70da5a8&lt;/a&gt; Docs: Correct link to rules page (#fixes 6553) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6561&quot;&gt;#6561&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/666da7c&quot;&gt;666da7c&lt;/a&gt; Docs: 3.0.0 migration guide (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6521&quot;&gt;#6521&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9bf8fb&quot;&gt;b9bf8fb&lt;/a&gt; Docs: Update Governance Policy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6452&quot;&gt;#6452&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6522&quot;&gt;#6522&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5f8f3e8&quot;&gt;5f8f3e8&lt;/a&gt; Docs: Remove Box as a sponsor (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6529&quot;&gt;#6529&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7dfe0ad&quot;&gt;7dfe0ad&lt;/a&gt; Docs: fix max-lines samples (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6516&quot;&gt;#6516&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6515&quot;&gt;#6515&lt;/a&gt;) (Dmitriy Shekhovtsov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e96177b&quot;&gt;e96177b&lt;/a&gt; Docs: Add “Proposing a Rule Change” link to &lt;a href=&quot;http://contributing.md/&quot;&gt;CONTRIBUTING.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6511&quot;&gt;#6511&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bea9096&quot;&gt;bea9096&lt;/a&gt; Docs: Update pull request steps (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6474&quot;&gt;#6474&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6510&quot;&gt;#6510&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7bcf6e0&quot;&gt;7bcf6e0&lt;/a&gt; Docs: Consistent example headings &amp;amp; text pt3 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5446&quot;&gt;#5446&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6492&quot;&gt;#6492&lt;/a&gt;) (Guy Fraser)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1a328d9&quot;&gt;1a328d9&lt;/a&gt; Docs: Consistent example headings &amp;amp; text pt4 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5446&quot;&gt;#5446&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6493&quot;&gt;#6493&lt;/a&gt;) (Guy Fraser)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff5765e&quot;&gt;ff5765e&lt;/a&gt; Docs: Consistent example headings &amp;amp; text pt2 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5446&quot;&gt;#5446&lt;/a&gt;)(&lt;a href=&quot;https://github.com/eslint/eslint/issues/6491&quot;&gt;#6491&lt;/a&gt;) (Guy Fraser)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/01384fa&quot;&gt;01384fa&lt;/a&gt; Docs: Fixing typos (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5446&quot;&gt;#5446&lt;/a&gt;)(&lt;a href=&quot;https://github.com/eslint/eslint/issues/6494&quot;&gt;#6494&lt;/a&gt;) (Guy Fraser)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b7d8c7d&quot;&gt;b7d8c7d&lt;/a&gt; Docs: more accurate yoda-speak (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6497&quot;&gt;#6497&lt;/a&gt;) (Tony Lukasavage)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2c6cec&quot;&gt;c2c6cec&lt;/a&gt; Docs: Mark object-shorthand as fixable. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6485&quot;&gt;#6485&lt;/a&gt;) (Nick Heiner)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4545123&quot;&gt;4545123&lt;/a&gt; Docs: Rephrase documentation for &lt;code&gt;no-duplicate-imports&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6463&quot;&gt;#6463&lt;/a&gt;) (Simen Bekkhus)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b133e3&quot;&gt;1b133e3&lt;/a&gt; Docs: improve &lt;code&gt;no-native-reassign&lt;/code&gt; and specifying globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5358&quot;&gt;#5358&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6462&quot;&gt;#6462&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c60341f&quot;&gt;c60341f&lt;/a&gt; Chore: Update index and &lt;code&gt;meta&lt;/code&gt; for &lt;code&gt;&amp;quot;eslint:recommended&amp;quot;&lt;/code&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6403&quot;&gt;#6403&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6539&quot;&gt;#6539&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b179373&quot;&gt;b179373&lt;/a&gt; Chore: Remove dead code in excuteOnFiles (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6467&quot;&gt;#6467&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6466&quot;&gt;#6466&lt;/a&gt;) (Andrew Hutchings)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/18fbc4b&quot;&gt;18fbc4b&lt;/a&gt; Chore: Simplify eslint process exit code (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6368&quot;&gt;#6368&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6371&quot;&gt;#6371&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint&#39;s New Rule Format</title>
    <link href="https://eslint.org/blog/2016/07/eslint-new-rule-format/"/>
    <updated>2016-07-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/07/eslint-new-rule-format/</id>
    <content type="html">&lt;p&gt;When ESLint began three years ago, it was a much smaller project with a much smaller user base. The project has grown a lot since that time and, in order to help the project scale, we’ve invested a lot of time into automating as many processes as possible. For instance, our release process is now completely automated, including deciding what the next version number should be based on the commits going into the release. When we looked over the processes that are still manual, there was one that jumped out as a big pain point: keeping rule documentation in sync. This wasn’t a big problem when there were a dozen rules, but with over 200, this repeated process has become a big time commitment.&lt;/p&gt;
&lt;p&gt;So, for the first time, we’ve decided to change the rule format for ESLint. The change is fairly small and we’re hoping you’ll agree that it makes a lot of sense. The overall design goal was allow for meta data to be stored directly on the rules themselves. Doing so allows us to have one source of truth for rule-related meta data and then generate documentation such as our rules index page and documentation pages for individual rules based off of that meta data. That means we’ll no longer have to manually update multiple documentation pages whenever a rule becomes fixable or is added to &lt;code&gt;eslint:recommended&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We went through a lot of design sessions to come up with a new rule format that would be easy for existing rule developers to work with – making the new format familiar with as few changes as possible&lt;/p&gt;
&lt;h2 id=&quot;format-comparison&quot; tabindex=&quot;-1&quot;&gt;Format Comparison&lt;/h2&gt;
&lt;p&gt;To start, consider what rules have traditionally looked like in ESLint:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// the rule creator function&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;exports&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// code&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// the rule options schema&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;schema &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The two key parts of this format are the rule creator function and the rule options schema. As might be obvious, we started without rule options schemas and added them later. That led to the someone awkward inclusion of the &lt;code&gt;schema&lt;/code&gt; object on &lt;code&gt;module.exports&lt;/code&gt;. We never really liked this setup because it seemed like the schema should be defined before the creator function, but we didn’t have much of an option without changing the whole rule format (which we didn’t want to do at that point).&lt;/p&gt;
&lt;p&gt;The new rule format should look a bit similar:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;meta&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// special key used for doc-only information&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// indicates if the rule is fixable&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;fixable&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;code&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// the rule options schema&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;schema&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;// the rule creator function&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token function-variable function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token comment&quot;&gt;// code&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The rule creator function and the rule options schema are still present in this new format. The big difference is that an object is exported and the rule creator function is a method called &lt;code&gt;create()&lt;/code&gt; on that object. The contents of &lt;code&gt;create()&lt;/code&gt; are the same as the contents of the creator function in the old format – you don’t have to do anything differently, so you can just copy over all of your old code as-is.&lt;/p&gt;
&lt;p&gt;The object also has a &lt;code&gt;meta&lt;/code&gt; property that contains additional meta data for the rule, including the rule options schema. Additionally, there is a &lt;code&gt;docs&lt;/code&gt; object that contains information used in our documentation generation and the &lt;code&gt;fixable&lt;/code&gt; property, which is present only if a rule is fixable (knowing that a rule is fixable ahead of time allows us to optimize the autofixing process as well as call this out in documentation).&lt;/p&gt;
&lt;p&gt;You can read more about the new format in &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules&quot;&gt;Working with Rules&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;automatic-transformation&quot; tabindex=&quot;-1&quot;&gt;Automatic Transformation&lt;/h2&gt;
&lt;p&gt;All of the ESLint core rules have now been converted over into the new format, and we recommend that plugin authors update their custom rules to the new format as well. We used a tool that is now available called &lt;code&gt;eslint-transforms&lt;/code&gt; to automatically convert our old-style rules into the new format. You can install the tool from npm:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ npm install -g eslint-transforms
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can then transform your rules like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ eslint-transforms new-rule-format path/to/rules/ rule.js
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can pass in as many files or directories as necessary to transform. See the &lt;a href=&quot;https://github.com/eslint/eslint-transforms&quot;&gt;repo&lt;/a&gt; for more information.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.13.1 released</title>
    <link href="https://eslint.org/blog/2016/06/eslint-v2.13.1-released/"/>
    <updated>2016-06-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/06/eslint-v2.13.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/434de7f&quot;&gt;434de7f&lt;/a&gt; Fix: wrong baseDir (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6450&quot;&gt;#6450&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6457&quot;&gt;#6457&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c9ce09&quot;&gt;3c9ce09&lt;/a&gt; Fix: Keep indentation when fixing &lt;code&gt;padded-blocks&lt;/code&gt; “never” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6454&quot;&gt;#6454&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6456&quot;&gt;#6456&lt;/a&gt;) (Ed Lee)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e185b9&quot;&gt;1e185b9&lt;/a&gt; Fix: no-multiple-empty-lines errors when no line breaks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6449&quot;&gt;#6449&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6451&quot;&gt;#6451&lt;/a&gt;) (strawbrary)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9d4cb2&quot;&gt;a9d4cb2&lt;/a&gt; Docs: Fix typo in max-params examples (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6471&quot;&gt;#6471&lt;/a&gt;) (J. William Ashton)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.13.0 released</title>
    <link href="https://eslint.org/blog/2016/06/eslint-v2.13.0-released/"/>
    <updated>2016-06-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/06/eslint-v2.13.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;last-2.x-release&quot; tabindex=&quot;-1&quot;&gt;Last 2.x Release&lt;/h3&gt;
&lt;p&gt;This is the last planned 2.x release. The next scheduled release is 3.0.0, which contains several small breaking changes. While there are breaking changes, we expect the impact to users to be very minimal. You can &lt;a href=&quot;https://github.com/eslint/eslint/issues/6356&quot;&gt;review the 3.0.0 plan&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h3 id=&quot;more-autofixing&quot; tabindex=&quot;-1&quot;&gt;More Autofixing&lt;/h3&gt;
&lt;p&gt;We are continuing to add autofixing to more rules, and this release we added autofixing to &lt;code&gt;object-shorthand&lt;/code&gt;, &lt;code&gt;padded-blocks&lt;/code&gt;, and &lt;code&gt;no-multiple-empty-lines&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da30cf9&quot;&gt;da30cf9&lt;/a&gt; Update: Add fixer for object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6412&quot;&gt;#6412&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6418&quot;&gt;#6418&lt;/a&gt;) (Nick Heiner)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1316db0&quot;&gt;1316db0&lt;/a&gt; Update: Add &lt;code&gt;never&lt;/code&gt; option for &lt;code&gt;func-names&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6059&quot;&gt;#6059&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6392&quot;&gt;#6392&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c123e2&quot;&gt;1c123e2&lt;/a&gt; Update: Add autofix for &lt;code&gt;padded-blocks&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6320&quot;&gt;#6320&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6393&quot;&gt;#6393&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5122f73&quot;&gt;5122f73&lt;/a&gt; Update: no-multiple-empty-lines fixer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6225&quot;&gt;#6225&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6226&quot;&gt;#6226&lt;/a&gt;) (Ruurd Moelker)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf223dd&quot;&gt;cf223dd&lt;/a&gt; Fix: add test for a syntax error (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6013&quot;&gt;#6013&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6378&quot;&gt;#6378&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ec89c8&quot;&gt;8ec89c8&lt;/a&gt; Fix: &lt;code&gt;--print-config&lt;/code&gt; return config inside subdir (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6329&quot;&gt;#6329&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6385&quot;&gt;#6385&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f73240&quot;&gt;4f73240&lt;/a&gt; Fix: &lt;code&gt;object-curly-newline&lt;/code&gt; multiline with comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6381&quot;&gt;#6381&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6396&quot;&gt;#6396&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed84c4c&quot;&gt;ed84c4c&lt;/a&gt; Fix: improve &lt;code&gt;newline-per-chained-call&lt;/code&gt; message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6340&quot;&gt;#6340&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6360&quot;&gt;#6360&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb49c7f&quot;&gt;fb49c7f&lt;/a&gt; Fix: nested &lt;code&gt;extends&lt;/code&gt; with relative path (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6358&quot;&gt;#6358&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6359&quot;&gt;#6359&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cfdd524&quot;&gt;cfdd524&lt;/a&gt; Fix: allow semi as braceless body of statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6386&quot;&gt;#6386&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6391&quot;&gt;#6391&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/852b6df&quot;&gt;852b6df&lt;/a&gt; Docs: Delete empty table of links from Code Path Analysis (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6423&quot;&gt;#6423&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2b5277&quot;&gt;c2b5277&lt;/a&gt; Docs: Add gitter chat link to Reporting Bugs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6430&quot;&gt;#6430&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/73a9a6d&quot;&gt;73a9a6d&lt;/a&gt; Docs: Fix links in Configuring ESLint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6421&quot;&gt;#6421&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ea4e44&quot;&gt;9ea4e44&lt;/a&gt; Docs: Update parser reference to &lt;code&gt;espree&lt;/code&gt; instead of &lt;code&gt;esprima&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6404&quot;&gt;#6404&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f57467&quot;&gt;7f57467&lt;/a&gt; Docs: Make &lt;code&gt;fix&lt;/code&gt; param clearer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6366&quot;&gt;#6366&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6367&quot;&gt;#6367&lt;/a&gt;) (Nick Heiner)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e7ce72&quot;&gt;0e7ce72&lt;/a&gt; Docs: Fix rest-spread-spacing’s name (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6365&quot;&gt;#6365&lt;/a&gt;) (cody)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6b08cfc&quot;&gt;6b08cfc&lt;/a&gt; Docs: key-spacing fixable documenation notes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6375&quot;&gt;#6375&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6376&quot;&gt;#6376&lt;/a&gt;) (Ruurd Moelker)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b4be3b&quot;&gt;4b4be3b&lt;/a&gt; Docs: &lt;code&gt;max-lines&lt;/code&gt; option: fix &lt;code&gt;skipComments&lt;/code&gt; typo (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6374&quot;&gt;#6374&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/20ab4f6&quot;&gt;20ab4f6&lt;/a&gt; Docs: Fix wrong link in object-curly-newline (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6373&quot;&gt;#6373&lt;/a&gt;) (Grant Snodgrass)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/412ce8d&quot;&gt;412ce8d&lt;/a&gt; Docs: Fix broken links in no-mixed-operators (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6372&quot;&gt;#6372&lt;/a&gt;) (Grant Snodgrass)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2cd90eb&quot;&gt;2cd90eb&lt;/a&gt; Chore: Fix rule meta description inconsistencies (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5417&quot;&gt;#5417&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6422&quot;&gt;#6422&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e9117e&quot;&gt;5e9117e&lt;/a&gt; Chore: sort rules in eslint.json (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6425&quot;&gt;#6425&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6426&quot;&gt;#6426&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/77697a7&quot;&gt;77697a7&lt;/a&gt; Chore: Fake config hierarchy fixtures (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6206&quot;&gt;#6206&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6402&quot;&gt;#6402&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.12.0 released</title>
    <link href="https://eslint.org/blog/2016/06/eslint-v2.12.0-released/"/>
    <updated>2016-06-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/06/eslint-v2.12.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;jscs-compatibility&quot; tabindex=&quot;-1&quot;&gt;JSCS Compatibility&lt;/h3&gt;
&lt;p&gt;We are continuing to work on compatibility with JSCS, and in this release we added two new rules that correspond to JSCS rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/max-lines&quot;&gt;&lt;code&gt;max-lines&lt;/code&gt;&lt;/a&gt; - equivalent of &lt;a href=&quot;http://jscs.info/rule/maximumNumberOfLines&quot;&gt;maximumNumberOfLines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;&lt;code&gt;object-curly-newline&lt;/code&gt;&lt;/a&gt; - equivalent of &lt;a href=&quot;http://jscs.info/rule/requirePaddingNewLinesInObjects&quot;&gt;requirePaddingNewLinesInObjects&lt;/a&gt; and &lt;a href=&quot;http://jscs.info/rule/disallowPaddingNewLinesInObjects&quot;&gt;disallowPaddingNewLinesInObjects&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;introducing-eslint%3Aall&quot; tabindex=&quot;-1&quot;&gt;Introducing &lt;code&gt;eslint:all&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;We’ve had numerous requests to provide a configuration that turns on all rules ESLint provides. You can now set &lt;code&gt;extends&lt;/code&gt; in your configuration file equal to &lt;code&gt;&amp;quot;eslint:all&amp;quot;&lt;/code&gt; to get every core rule enabled with their default settings.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;: This configuration is &lt;strong&gt;not recommended for production use&lt;/strong&gt; because it changes with every minor and major version of ESLint. Use at your own risk.&lt;/p&gt;
&lt;p&gt;You can read more in the &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#using-eslintall&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;performance-improvement&quot; tabindex=&quot;-1&quot;&gt;Performance Improvement&lt;/h3&gt;
&lt;p&gt;You might have seen &lt;a href=&quot;https://www.youtube.com/watch?v=iMqi55rcR00&amp;amp;feature=youtu.be&amp;amp;t=1770&quot;&gt;this case study&lt;/a&gt; of debugging a performance issue in ESLint at Google I/O. A &lt;a href=&quot;https://github.com/eslint/eslint/pull/6215&quot;&gt;pull request&lt;/a&gt; was filed during the talk that showed some significant performance improvement. There were some details of the pull request that weren’t quite correct and caused some regressions, however, we were able to adopt the basic approach to realize some of the performance improvements.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://github.com/eslint/eslint/pull/6276&quot;&gt;#6276&lt;/a&gt;, we enabled this improvement for anyone who is either not using &lt;code&gt;.eslintignore&lt;/code&gt; or is using &lt;code&gt;.eslintignore&lt;/code&gt; without specifying a re-inclusion pattern (beginning with &lt;code&gt;!&lt;/code&gt;). This showed a significant performance improvement when run on the ESLint repo itself and we expect developers with large projects (especially those with a &lt;code&gt;node_modules&lt;/code&gt; directory) to see savings of whole seconds when linting everything (such as using &lt;code&gt;eslint .&lt;/code&gt;). If you already manually pass in filenames on the command line, you won’t see any improvement because the gains are on directory traversal.&lt;/p&gt;
&lt;h3 id=&quot;formalized-semantic-versioning-policy&quot; tabindex=&quot;-1&quot;&gt;Formalized Semantic Versioning Policy&lt;/h3&gt;
&lt;p&gt;One of the things that JSCS did well was formally defining their semantic versioning policy. In the world of linters, it’s not always clear whether something should be a patch or a minor version bump. For instance, what if a rule has a bug where it’s not finding problems that it should? While we could classify that as a bug, fixing the bug could cause ESLint users’ lint builds to break, which is unexpected in a patch version.&lt;/p&gt;
&lt;p&gt;The JSCS team had a really well-reasoned semantic versioning policy to give their users a clear picture of when to expect lint build breakage. We decided to adopt a policy based on the JSCS one and have posted it on our &lt;a href=&quot;https://github.com/eslint/eslint#semantic-versioning-policy&quot;&gt;README&lt;/a&gt;. The end result is that we are taking breaking your lint builds very seriously and want to be clear when such breakages can occur and why.&lt;/p&gt;
&lt;h3 id=&quot;all-new-rules&quot; tabindex=&quot;-1&quot;&gt;All New Rules&lt;/h3&gt;
&lt;p&gt;The complete list of new rules in this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/max-lines&quot;&gt;&lt;code&gt;max-lines&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-operators&quot;&gt;&lt;code&gt;no-mixed-operators&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/object-curly-newline&quot;&gt;&lt;code&gt;object-curly-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/rest-spread-spacing&quot;&gt;&lt;code&gt;rest-spread-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2520f5a&quot;&gt;2520f5a&lt;/a&gt; New: &lt;code&gt;max-lines&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6078&quot;&gt;#6078&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6321&quot;&gt;#6321&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0e14016&quot;&gt;0e14016&lt;/a&gt; New: &lt;code&gt;no-mixed-operators&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6023&quot;&gt;#6023&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6241&quot;&gt;#6241&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f804397&quot;&gt;f804397&lt;/a&gt; New: Add &lt;code&gt;eslint:all&lt;/code&gt; option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6240&quot;&gt;#6240&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6248&quot;&gt;#6248&lt;/a&gt;) (Robert Fletcher)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2663569&quot;&gt;2663569&lt;/a&gt; New: &lt;code&gt;object-curly-newline&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6072&quot;&gt;#6072&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6223&quot;&gt;#6223&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1313804&quot;&gt;1313804&lt;/a&gt; New: rest-spread-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5391&quot;&gt;#5391&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6278&quot;&gt;#6278&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54c30fb&quot;&gt;54c30fb&lt;/a&gt; Update: Add explicit default option &lt;code&gt;always&lt;/code&gt; for &lt;code&gt;eqeqeq&lt;/code&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6144&quot;&gt;#6144&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6342&quot;&gt;#6342&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d63370&quot;&gt;2d63370&lt;/a&gt; Update: max-len will warn indented comment lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6322&quot;&gt;#6322&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6324&quot;&gt;#6324&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9bfbc64&quot;&gt;9bfbc64&lt;/a&gt; Update: Option for object literals in &lt;code&gt;arrow-body-style&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5936&quot;&gt;#5936&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6216&quot;&gt;#6216&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6e03c4b&quot;&gt;6e03c4b&lt;/a&gt; Update: Add never option to arrow-body-style (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6317&quot;&gt;#6317&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6318&quot;&gt;#6318&lt;/a&gt;) (Andrew Hyndman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/72c2ea5&quot;&gt;72c2ea5&lt;/a&gt; Update: callback-return allows for object methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4711&quot;&gt;#4711&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6277&quot;&gt;#6277&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fca0679&quot;&gt;fca0679&lt;/a&gt; Update: Improve perf not traversing default ignored dirs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5679&quot;&gt;#5679&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6276&quot;&gt;#6276&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/316a507&quot;&gt;316a507&lt;/a&gt; Fix: one-var allows uninitialized vars in ForIn/ForOf (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5744&quot;&gt;#5744&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6272&quot;&gt;#6272&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/61dfe68&quot;&gt;61dfe68&lt;/a&gt; Fix: &lt;code&gt;no-useless-rename&lt;/code&gt; false positive in babel-eslint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6266&quot;&gt;#6266&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6290&quot;&gt;#6290&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bb69380&quot;&gt;bb69380&lt;/a&gt; Fix: no-useless-rename handles ExperimentalRestProperty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6284&quot;&gt;#6284&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6288&quot;&gt;#6288&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dcd4ad7&quot;&gt;dcd4ad7&lt;/a&gt; Docs: clarify usage of inline disable comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6335&quot;&gt;#6335&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6347&quot;&gt;#6347&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c03300b&quot;&gt;c03300b&lt;/a&gt; Docs: Clarified how plugin rules look in plugin configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6346&quot;&gt;#6346&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6351&quot;&gt;#6351&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c87709&quot;&gt;9c87709&lt;/a&gt; Docs: Add semantic versioning policy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6244&quot;&gt;#6244&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6343&quot;&gt;#6343&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5affab1&quot;&gt;5affab1&lt;/a&gt; Docs: Describe values under Extending Configuration Files (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6240&quot;&gt;#6240&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6336&quot;&gt;#6336&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/477fbc1&quot;&gt;477fbc1&lt;/a&gt; Docs: Add section about customizing RuleTester (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6227&quot;&gt;#6227&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6331&quot;&gt;#6331&lt;/a&gt;) (Jeroen Engels)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dfe05bf&quot;&gt;dfe05bf&lt;/a&gt; Docs: Link JSCS rules to their corresponding page. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6334&quot;&gt;#6334&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1cc4356&quot;&gt;1cc4356&lt;/a&gt; Docs: Remove reference to numeric config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6309&quot;&gt;#6309&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6327&quot;&gt;#6327&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d4efbe&quot;&gt;2d4efbe&lt;/a&gt; Docs: Describe options in rule under Strict Mode (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6312&quot;&gt;#6312&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1953fa&quot;&gt;c1953fa&lt;/a&gt; Docs: Typo fix ‘and’ -&amp;gt; ‘any’ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6326&quot;&gt;#6326&lt;/a&gt;) (Stephen Edgar)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d49ab4b&quot;&gt;d49ab4b&lt;/a&gt; Docs: Code conventions improvements (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6313&quot;&gt;#6313&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6cbee31&quot;&gt;6cbee31&lt;/a&gt; Docs: Typo fix ‘colum’ -&amp;gt; ‘column’ (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6306&quot;&gt;#6306&lt;/a&gt;) (Andrew Cobby)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89580a4&quot;&gt;89580a4&lt;/a&gt; Docs: Distinguish examples in rules under Stylistic Issues part 5 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6291&quot;&gt;#6291&lt;/a&gt;) (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38dccdd&quot;&gt;38dccdd&lt;/a&gt; Docs: &lt;code&gt;--no-ignore&lt;/code&gt; disables all forms of ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6260&quot;&gt;#6260&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6304&quot;&gt;#6304&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/320e8b0&quot;&gt;320e8b0&lt;/a&gt; Docs: Describe options in rules under Possible Errors part 4 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6270&quot;&gt;#6270&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e052c1&quot;&gt;3e052c1&lt;/a&gt; Docs: Mark no-useless-rename as fixable in rules index (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6297&quot;&gt;#6297&lt;/a&gt;) (Dalton Santos)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c78c8cb&quot;&gt;c78c8cb&lt;/a&gt; Build: Remove commit check from appveyor (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6292&quot;&gt;#6292&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6294&quot;&gt;#6294&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/977cdd5&quot;&gt;977cdd5&lt;/a&gt; Chore: remove unused method from FileFinder (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6344&quot;&gt;#6344&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6345&quot;&gt;#6345&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e38fc1&quot;&gt;3e38fc1&lt;/a&gt; Chore: more tests for comments at the end of blocks (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6090&quot;&gt;#6090&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6273&quot;&gt;#6273&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.11.1 released</title>
    <link href="https://eslint.org/blog/2016/05/eslint-v2.11.1-released/"/>
    <updated>2016-05-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/05/eslint-v2.11.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03beb27&quot;&gt;03beb27&lt;/a&gt; Fix: &lt;code&gt;no-useless-rename&lt;/code&gt; false positives (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6266&quot;&gt;#6266&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6267&quot;&gt;#6267&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/113c1a8&quot;&gt;113c1a8&lt;/a&gt; Fix: &lt;code&gt;max-statements-per-line&lt;/code&gt; false positive at exports (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6264&quot;&gt;#6264&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6268&quot;&gt;#6268&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/64b0d0c&quot;&gt;64b0d0c&lt;/a&gt; Fix: failed to parse &lt;code&gt;/*eslint&lt;/code&gt; comments by colon (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6224&quot;&gt;#6224&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6258&quot;&gt;#6258&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c8936eb&quot;&gt;c8936eb&lt;/a&gt; Build: Don’t check commit count (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5935&quot;&gt;#5935&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6263&quot;&gt;#6263&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe89037&quot;&gt;fe89037&lt;/a&gt; Docs: Fix rule name in example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6279&quot;&gt;#6279&lt;/a&gt;) (Kenneth Williams)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.11.0 released</title>
    <link href="https://eslint.org/blog/2016/05/eslint-v2.11.0-released/"/>
    <updated>2016-05-27T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/05/eslint-v2.11.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;jscs-compatibility&quot; tabindex=&quot;-1&quot;&gt;JSCS Compatibility&lt;/h3&gt;
&lt;p&gt;We’ve started our JSCS compatibility work by continuing to add new rules and rule options to fill in the gaps between what ESLint can do and what JSCS can do. This release includes the new &lt;a href=&quot;https://eslint.org/docs/rules/no-useless-rename&quot;&gt;&lt;code&gt;no-useless-rename&lt;/code&gt;&lt;/a&gt; rule, which corresponds to the JSCS &lt;a href=&quot;http://jscs.info/rule/disallowIdenticalDestructuringNames&quot;&gt;&lt;code&gt;disallowIdenticalDestructuringNames&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can follow our progress on JSCS compatibility by looking at the &lt;a href=&quot;https://github.com/eslint/eslint/milestones/JSCS%20Compatibility&quot;&gt;milestone&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;The new rules included in this release are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-useless-rename&quot;&gt;&lt;code&gt;no-useless-rename&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/unicode-bom&quot;&gt;&lt;code&gt;unicode-bom&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-prototype-builtins&quot;&gt;&lt;code&gt;no-prototype-builtins&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fea8fe6&quot;&gt;fea8fe6&lt;/a&gt; New: no-useless-rename (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6058&quot;&gt;#6058&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6249&quot;&gt;#6249&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/088bda9&quot;&gt;088bda9&lt;/a&gt; New: &lt;code&gt;unicode-bom&lt;/code&gt; rule to allow or disallow BOM (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5502&quot;&gt;#5502&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6230&quot;&gt;#6230&lt;/a&gt;) (Andrew Johnston)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/04bd586&quot;&gt;04bd586&lt;/a&gt; New: Disallow use of Object.prototype methods on objects (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2693&quot;&gt;#2693&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6107&quot;&gt;#6107&lt;/a&gt;) (Andrew Levine)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74c458d&quot;&gt;74c458d&lt;/a&gt; Update: key-spacing rule whitespace fixer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6167&quot;&gt;#6167&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6169&quot;&gt;#6169&lt;/a&gt;) (Ruurd Moelker)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53754ec&quot;&gt;53754ec&lt;/a&gt; Update: max in &lt;code&gt;max-statements-per-line&lt;/code&gt; should be &amp;gt;=0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6171&quot;&gt;#6171&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6172&quot;&gt;#6172&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54d1201&quot;&gt;54d1201&lt;/a&gt; Update: Add treatUndefinedAsUnspecified option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6026&quot;&gt;#6026&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6194&quot;&gt;#6194&lt;/a&gt;) (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/18152dd&quot;&gt;18152dd&lt;/a&gt; Update: Add checkLoops option to no-constant-condition (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5477&quot;&gt;#5477&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6202&quot;&gt;#6202&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/77dd2b4&quot;&gt;77dd2b4&lt;/a&gt; Fix: On --init, print message when package.json is invalid (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6257&quot;&gt;#6257&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6261&quot;&gt;#6261&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f60186&quot;&gt;7f60186&lt;/a&gt; Fix: &lt;code&gt;--ignore-pattern&lt;/code&gt; can’t uningnore files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6127&quot;&gt;#6127&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6253&quot;&gt;#6253&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b4cff9d&quot;&gt;b4cff9d&lt;/a&gt; Fix: Incorrect object-property-newline behavior (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6207&quot;&gt;#6207&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6213&quot;&gt;#6213&lt;/a&gt;) (Rafał Ruciński)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee0cd58&quot;&gt;ee0cd58&lt;/a&gt; Fix: &lt;code&gt;newline-before-return&lt;/code&gt; shouldn’t disallow newlines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6176&quot;&gt;#6176&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6217&quot;&gt;#6217&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d4f5526&quot;&gt;d4f5526&lt;/a&gt; Fix: &lt;code&gt;vars-on-top&lt;/code&gt; crashs at export declarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6210&quot;&gt;#6210&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6220&quot;&gt;#6220&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/14bfc03&quot;&gt;14bfc03&lt;/a&gt; Fix: &lt;code&gt;comma-dangle&lt;/code&gt; wrong autofix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6233&quot;&gt;#6233&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6235&quot;&gt;#6235&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c10c07f&quot;&gt;c10c07f&lt;/a&gt; Fix: lost code in autofixing (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6233&quot;&gt;#6233&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6234&quot;&gt;#6234&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7644908&quot;&gt;7644908&lt;/a&gt; Fix: no-multiple-empty-lines BOF and EOF defaults (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6179&quot;&gt;#6179&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6180&quot;&gt;#6180&lt;/a&gt;) (Ruurd Moelker)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/72335eb&quot;&gt;72335eb&lt;/a&gt; Fix: &lt;code&gt;max-statements-per-line&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6173&quot;&gt;#6173&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6153&quot;&gt;#6153&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6192&quot;&gt;#6192&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9fce04e&quot;&gt;9fce04e&lt;/a&gt; Fix: &lt;code&gt;generator-star-spacing&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6135&quot;&gt;#6135&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6168&quot;&gt;#6168&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/35b4656&quot;&gt;35b4656&lt;/a&gt; Docs: Edit &lt;a href=&quot;http://arrow-parens.md/&quot;&gt;arrow-parens.md&lt;/a&gt; to show correct output value (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6245&quot;&gt;#6245&lt;/a&gt;) (Adam Terlson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cdd65d7&quot;&gt;cdd65d7&lt;/a&gt; Docs: added examples for arrow-body-style (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5498&quot;&gt;#5498&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6242&quot;&gt;#6242&lt;/a&gt;) (Tieme van Veen)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6d5b1f&quot;&gt;e6d5b1f&lt;/a&gt; Docs: Add rule deprecation section to user guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5845&quot;&gt;#5845&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6201&quot;&gt;#6201&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/777941e&quot;&gt;777941e&lt;/a&gt; Upgrade: doctrine to 1.2.2 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6121&quot;&gt;#6121&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6231&quot;&gt;#6231&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.10.2 released</title>
    <link href="https://eslint.org/blog/2016/05/eslint-v2.10.2-released/"/>
    <updated>2016-05-16T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/05/eslint-v2.10.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bda5de5&quot;&gt;bda5de5&lt;/a&gt; Fix: Remove default parser from CLIEngine options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6182&quot;&gt;#6182&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6183&quot;&gt;#6183&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e59e5a0&quot;&gt;e59e5a0&lt;/a&gt; Docs: Describe options in rules under Possible Errors part 3 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6105&quot;&gt;#6105&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/842ab2e&quot;&gt;842ab2e&lt;/a&gt; Build: Run phantomjs tests using karma (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6128&quot;&gt;#6128&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6178&quot;&gt;#6178&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.10.1 released</title>
    <link href="https://eslint.org/blog/2016/05/eslint-v2.10.1-released/"/>
    <updated>2016-05-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/05/eslint-v2.10.1-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This release fixes an issue when using parser other than default one. And a few other minor issue found after the last release.&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9397135&quot;&gt;9397135&lt;/a&gt; Fix: &lt;code&gt;valid-jsdoc&lt;/code&gt; false positive at default parameters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6097&quot;&gt;#6097&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6170&quot;&gt;#6170&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2166ad4&quot;&gt;2166ad4&lt;/a&gt; Fix: warning &amp;amp; error count in &lt;code&gt;CLIEngine.getErrorResults&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6155&quot;&gt;#6155&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6157&quot;&gt;#6157&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e0a652&quot;&gt;1e0a652&lt;/a&gt; Fix: ignore empty statements in max-statements-per-line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6153&quot;&gt;#6153&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6156&quot;&gt;#6156&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f9ca0d6&quot;&gt;f9ca0d6&lt;/a&gt; Fix: &lt;code&gt;no-extra-parens&lt;/code&gt; to check for nulls (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6161&quot;&gt;#6161&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6164&quot;&gt;#6164&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d095ee3&quot;&gt;d095ee3&lt;/a&gt; Fix: Parser merge sequence in config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6158&quot;&gt;#6158&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6160&quot;&gt;#6160&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f33e49f&quot;&gt;f33e49f&lt;/a&gt; Fix: &lt;code&gt;no-return-assign&lt;/code&gt; to check for null tokens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6159&quot;&gt;#6159&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6162&quot;&gt;#6162&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.10.0 released</title>
    <link href="https://eslint.org/blog/2016/05/eslint-v2.10.0-released/"/>
    <updated>2016-05-13T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/05/eslint-v2.10.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;This version introduces one new rule:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/object-property-newline&quot;&gt;&lt;code&gt;object-property-newline&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;new-rule-options&quot; tabindex=&quot;-1&quot;&gt;New Rule Options&lt;/h3&gt;
&lt;p&gt;A few rules got additional options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;&lt;code&gt;no-extra-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-irregular-whitespace&quot;&gt;&lt;code&gt;no-irregular-whitespace&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-const&quot;&gt;&lt;code&gt;prefer-const&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/object-shorthand&quot;&gt;&lt;code&gt;object-shorthand&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f84eb80&quot;&gt;f84eb80&lt;/a&gt; New: Add new rule &lt;code&gt;object-property-newline&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5667&quot;&gt;#5667&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5933&quot;&gt;#5933&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/767da6f&quot;&gt;767da6f&lt;/a&gt; Update: add returnAssign option to no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6036&quot;&gt;#6036&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6095&quot;&gt;#6095&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0734967&quot;&gt;0734967&lt;/a&gt; Update: Add an option to &lt;code&gt;prefer-const&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5692&quot;&gt;#5692&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6040&quot;&gt;#6040&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7941d5e&quot;&gt;7941d5e&lt;/a&gt; Update: Add autofix for &lt;code&gt;lines-around-comment&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5956&quot;&gt;#5956&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6062&quot;&gt;#6062&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8633e4d&quot;&gt;8633e4d&lt;/a&gt; Update: multipass should not exit prematurely (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5995&quot;&gt;#5995&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6048&quot;&gt;#6048&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3c44c2c&quot;&gt;3c44c2c&lt;/a&gt; Update: Adds an avoidQuotes option for object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3366&quot;&gt;#3366&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5870&quot;&gt;#5870&lt;/a&gt;) (Chris Sauvé)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a3a6e06&quot;&gt;a3a6e06&lt;/a&gt; Update: no-irregal-whitespace in a regular expression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5840&quot;&gt;#5840&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6018&quot;&gt;#6018&lt;/a&gt;) (Linda_pp)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/10b0933&quot;&gt;10b0933&lt;/a&gt; Fix: Optimize no-irregular-whitespace for the common case (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6116&quot;&gt;#6116&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6117&quot;&gt;#6117&lt;/a&gt;) (Andres Suarez)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e13e696&quot;&gt;e13e696&lt;/a&gt; Fix: &lt;code&gt;_&lt;/code&gt; and &lt;code&gt;$&lt;/code&gt; in isES5Constructor (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6085&quot;&gt;#6085&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6094&quot;&gt;#6094&lt;/a&gt;) (Kevin Locke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/67916b9&quot;&gt;67916b9&lt;/a&gt; Fix: &lt;code&gt;no-loop-func&lt;/code&gt; crashed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6130&quot;&gt;#6130&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6138&quot;&gt;#6138&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d311a62&quot;&gt;d311a62&lt;/a&gt; Fix: Sort fixes consistently even if they overlap (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6124&quot;&gt;#6124&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6133&quot;&gt;#6133&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/067db14&quot;&gt;067db14&lt;/a&gt; Fix: Replace &lt;code&gt;assert.deepEqual&lt;/code&gt; by &lt;code&gt;lodash.isEqual&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6111&quot;&gt;#6111&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6112&quot;&gt;#6112&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52fdf04&quot;&gt;52fdf04&lt;/a&gt; Fix: &lt;code&gt;no-multiple-empty-lines&lt;/code&gt; duplicate errors at BOF (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6113&quot;&gt;#6113&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6114&quot;&gt;#6114&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ef739cd&quot;&gt;ef739cd&lt;/a&gt; Fix: Merge various command line configs at the same time (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6104&quot;&gt;#6104&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6108&quot;&gt;#6108&lt;/a&gt;) (Ed Lee)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6df4b23&quot;&gt;6df4b23&lt;/a&gt; Fix: &lt;code&gt;no-return-assign&lt;/code&gt; warning nested expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5913&quot;&gt;#5913&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6041&quot;&gt;#6041&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d40017f&quot;&gt;d40017f&lt;/a&gt; Fix: comma-style accounts for parens in array (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6006&quot;&gt;#6006&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6038&quot;&gt;#6038&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9a4652&quot;&gt;a9a4652&lt;/a&gt; Fix: throw when rule uses &lt;code&gt;fix&lt;/code&gt; but &lt;code&gt;meta.fixable&lt;/code&gt; not set (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5970&quot;&gt;#5970&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6043&quot;&gt;#6043&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/388d6f8&quot;&gt;388d6f8&lt;/a&gt; Fix: &lt;code&gt;no-sequences&lt;/code&gt; false negative at arrow expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6082&quot;&gt;#6082&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6083&quot;&gt;#6083&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a66bf19&quot;&gt;a66bf19&lt;/a&gt; Fix: &lt;code&gt;lines-around-comment&lt;/code&gt; multiple errors on same line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5965&quot;&gt;#5965&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5994&quot;&gt;#5994&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ef8cbff&quot;&gt;ef8cbff&lt;/a&gt; Fix: object-shorthand should only lint computed methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6015&quot;&gt;#6015&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6024&quot;&gt;#6024&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dd8bf93&quot;&gt;dd8bf93&lt;/a&gt; Fix: blockless else in max-statements-per-line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5926&quot;&gt;#5926&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5993&quot;&gt;#5993&lt;/a&gt;) (Glen Mailer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3db2e89&quot;&gt;3db2e89&lt;/a&gt; Fix: Do not swallow exceptions in CLIEngine.getFormatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5977&quot;&gt;#5977&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5978&quot;&gt;#5978&lt;/a&gt;) (Gustav Nikolaj)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/eb2fb44&quot;&gt;eb2fb44&lt;/a&gt; Fix: Always ignore defaults unless explicitly passed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5547&quot;&gt;#5547&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5820&quot;&gt;#5820&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2f15354&quot;&gt;2f15354&lt;/a&gt; Fix: Removed false positives of break and continue (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5972&quot;&gt;#5972&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6000&quot;&gt;#6000&lt;/a&gt;) (Onur Temizkan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/098cd9c&quot;&gt;098cd9c&lt;/a&gt; Docs: Distinguish examples in rules under Stylistic Issues part 4 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6136&quot;&gt;#6136&lt;/a&gt;) (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/805742c&quot;&gt;805742c&lt;/a&gt; Docs: Clarify JSX option usage (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6132&quot;&gt;#6132&lt;/a&gt;) (Richard Collins)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/36bec90&quot;&gt;36bec90&lt;/a&gt; Docs: linkify URLs in &lt;a href=&quot;http://development-environment.md/&quot;&gt;development-environment.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6150&quot;&gt;#6150&lt;/a&gt;) (chrisjshull)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29c401a&quot;&gt;29c401a&lt;/a&gt; Docs: Convert rules in index under Removed from list to table (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6091&quot;&gt;#6091&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6294459&quot;&gt;6294459&lt;/a&gt; Docs: Correct syntax for default ignores and &lt;code&gt;.eslintignore&lt;/code&gt; example (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6118&quot;&gt;#6118&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e6f56da&quot;&gt;e6f56da&lt;/a&gt; Docs: Document &lt;code&gt;--ignore-pattern&lt;/code&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6120&quot;&gt;#6120&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4fc39b&quot;&gt;c4fc39b&lt;/a&gt; Docs: Update headings of rules under Removed (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5774&quot;&gt;#5774&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6102&quot;&gt;#6102&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/04563ca&quot;&gt;04563ca&lt;/a&gt; Docs: Describe options in rules under Possible Errors part 2 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6063&quot;&gt;#6063&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b67170&quot;&gt;0b67170&lt;/a&gt; Docs: Correct default for &lt;code&gt;one-var-declaration-per-line&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6017&quot;&gt;#6017&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6022&quot;&gt;#6022&lt;/a&gt;) (Ed Lee)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/992d9cf&quot;&gt;992d9cf&lt;/a&gt; Docs: Fix typography/teriminology in indent doc (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6045&quot;&gt;#6045&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6044&quot;&gt;#6044&lt;/a&gt;) (Rich Trott)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad10106&quot;&gt;ad10106&lt;/a&gt; Docs: Update comma-style docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6039&quot;&gt;#6039&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8e96064&quot;&gt;8e96064&lt;/a&gt; Docs: Clarify rule example in README since we allow string error levels (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6061&quot;&gt;#6061&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2cc54e&quot;&gt;a2cc54e&lt;/a&gt; Docs: Organize meta and describe visitor in Working with Rules (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5967&quot;&gt;#5967&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d5f4104&quot;&gt;d5f4104&lt;/a&gt; Docs: mention parsing errors in strict mode (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5485&quot;&gt;#5485&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5991&quot;&gt;#5991&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/249732e&quot;&gt;249732e&lt;/a&gt; Docs: Move docs from &lt;a href=&quot;http://eslint.github.io/&quot;&gt;eslint.github.io&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5964&quot;&gt;#5964&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6012&quot;&gt;#6012&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4c2de6c&quot;&gt;4c2de6c&lt;/a&gt; Docs: Add example of diff clarity to comma-dangle rule docs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6035&quot;&gt;#6035&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ab57e94&quot;&gt;ab57e94&lt;/a&gt; Docs: Add example of diff clarity to newline-per-chained-call (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5986&quot;&gt;#5986&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/88bc014&quot;&gt;88bc014&lt;/a&gt; Docs: Update readme info about jshint (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6027&quot;&gt;#6027&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2c15cc&quot;&gt;a2c15cc&lt;/a&gt; Docs: put config example in code block (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6005&quot;&gt;#6005&lt;/a&gt;) (Amos Wenger)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a5011cb&quot;&gt;a5011cb&lt;/a&gt; Docs: Fix a wrong examples’ header of &lt;code&gt;prefer-arrow-callback&lt;/code&gt;. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6020&quot;&gt;#6020&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1484ede&quot;&gt;1484ede&lt;/a&gt; Docs: Typo in nodejs-api (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6025&quot;&gt;#6025&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ade6a9b&quot;&gt;ade6a9b&lt;/a&gt; Docs: typo: “eslint-disable-line” not “eslint disable-line” (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6019&quot;&gt;#6019&lt;/a&gt;) (Will Day)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/06f6252&quot;&gt;06f6252&lt;/a&gt; Build: Use split instead of slice/indexOf for commit check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6109&quot;&gt;#6109&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6110&quot;&gt;#6110&lt;/a&gt;) (Ed Lee)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/716345f&quot;&gt;716345f&lt;/a&gt; Build: Match rule id at beginning of heading (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5774&quot;&gt;#5774&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6089&quot;&gt;#6089&lt;/a&gt;) (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/dc538aa&quot;&gt;dc538aa&lt;/a&gt; Build: Pin proxyquire to “&amp;gt;=1.0.0 &amp;lt;1.7.5” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6096&quot;&gt;#6096&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6100&quot;&gt;#6100&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d390b2&quot;&gt;5d390b2&lt;/a&gt; Chore: Replace deprecated calls to context - batch 4 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/6029&quot;&gt;#6029&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6087&quot;&gt;#6087&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4ae39d2&quot;&gt;4ae39d2&lt;/a&gt; Chore: Replace deprecated calls to context - batch 3 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6029&quot;&gt;#6029&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6056&quot;&gt;#6056&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd1b057&quot;&gt;cd1b057&lt;/a&gt; Chore: Replace deprecated calls to context - batch 2 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6029&quot;&gt;#6029&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6049&quot;&gt;#6049&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b9d76c&quot;&gt;9b9d76c&lt;/a&gt; Chore: Replace deprecated calls to context - batch 1 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/6029&quot;&gt;#6029&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/6034&quot;&gt;#6034&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.9.0 released</title>
    <link href="https://eslint.org/blog/2016/04/eslint-v2.9.0-released/"/>
    <updated>2016-04-29T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/04/eslint-v2.9.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;improved-autofix&quot; tabindex=&quot;-1&quot;&gt;Improved Autofix&lt;/h3&gt;
&lt;p&gt;This release features a new version of autofix. Now, when you use the &lt;code&gt;--fix&lt;/code&gt; option, ESLint will make multiple passes over your code in an attempt to fix as many issues as possible. As a result, autofix will take more time now than it did previously, but we believe that this change will ultimately result in less developer time spent fixing things that can be automatically fixed by ESLint.&lt;/p&gt;
&lt;p&gt;Additionally, due to implementing multipass autofix, we were able to extend autofix to more rules. The following rules now will be autofixed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/comma-dangle&quot;&gt;&lt;code&gt;comma-dangle&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-whitespace-before-property&quot;&gt;&lt;code&gt;no-whitespace-before-property&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;This version introduces some new rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-unsafe-finally&quot;&gt;&lt;code&gt;no-unsafe-finally&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-useless-computed-key&quot;&gt;&lt;code&gt;no-useless-computed-key&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e606523&quot;&gt;e606523&lt;/a&gt; New: Rule &lt;code&gt;no-unsafe-finally&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5808&quot;&gt;#5808&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5932&quot;&gt;#5932&lt;/a&gt;) (Onur Temizkan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a01b412&quot;&gt;a01b412&lt;/a&gt; New: Add &lt;code&gt;no-useless-computed-key&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5402&quot;&gt;#5402&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2ad1ec&quot;&gt;e2ad1ec&lt;/a&gt; Update: object-shorthand lints computed methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5871&quot;&gt;#5871&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5963&quot;&gt;#5963&lt;/a&gt;) (Chris Sauvé)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/51ddd4b&quot;&gt;51ddd4b&lt;/a&gt; Update: Use process @abstract when processing @return (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5941&quot;&gt;#5941&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5945&quot;&gt;#5945&lt;/a&gt;) (Simon Schick)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/52a4bea&quot;&gt;52a4bea&lt;/a&gt; Update: Add autofix for &lt;code&gt;no-whitespace-before-property&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5927&quot;&gt;#5927&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5951&quot;&gt;#5951&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/586478e&quot;&gt;586478e&lt;/a&gt; Update: Add autofix for &lt;code&gt;comma-dangle&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3805&quot;&gt;#3805&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5925&quot;&gt;#5925&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb78585&quot;&gt;cb78585&lt;/a&gt; Update: Add &lt;code&gt;allowUnboundThis&lt;/code&gt; to &lt;code&gt;prefer-arrow-callback&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4668&quot;&gt;#4668&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19f6fff&quot;&gt;19f6fff&lt;/a&gt; Update: Autofixing does multiple passes (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5329&quot;&gt;#5329&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b39461&quot;&gt;2b39461&lt;/a&gt; Update: &lt;code&gt;commentPattern&lt;/code&gt; option for &lt;code&gt;default-case&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5803&quot;&gt;#5803&lt;/a&gt;) (Artyom Lvov)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8a2cd8&quot;&gt;a8a2cd8&lt;/a&gt; Fix: Avoid autoconfig crashes from inline comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5992&quot;&gt;#5992&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5999&quot;&gt;#5999&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/141b778&quot;&gt;141b778&lt;/a&gt; Fix: no-control-regex literal handling fixed. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5737&quot;&gt;#5737&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5943&quot;&gt;#5943&lt;/a&gt;) (Efe Gürkan YALAMAN)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/577757d&quot;&gt;577757d&lt;/a&gt; Fix: Clarify color option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5928&quot;&gt;#5928&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5974&quot;&gt;#5974&lt;/a&gt;) (Grant Snodgrass)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e7a3ef&quot;&gt;1e7a3ef&lt;/a&gt; Fix: &lt;code&gt;id-match&lt;/code&gt; false positive in property values (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5885&quot;&gt;#5885&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5960&quot;&gt;#5960&lt;/a&gt;) (Mike Sherov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f842d18&quot;&gt;f842d18&lt;/a&gt; Fix: &lt;code&gt;no-this-before-super&lt;/code&gt; crash on unreachable paths (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5894&quot;&gt;#5894&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f1b2992&quot;&gt;f1b2992&lt;/a&gt; Fix: &lt;code&gt;no-useless-escape&lt;/code&gt; false positive in JSXAttribute (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5882&quot;&gt;#5882&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9c5323&quot;&gt;a9c5323&lt;/a&gt; Fix: Install ESLint on init if not installed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5833&quot;&gt;#5833&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e7e6581&quot;&gt;e7e6581&lt;/a&gt; Docs: Update CLA link (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5980&quot;&gt;#5980&lt;/a&gt;) (Gustav Nikolaj)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/46e058d&quot;&gt;46e058d&lt;/a&gt; Docs: Correct typo in &lt;a href=&quot;http://configuring.md/&quot;&gt;configuring.md&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5957&quot;&gt;#5957&lt;/a&gt;) (Nick S. Plekhanov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/43f6d05&quot;&gt;43f6d05&lt;/a&gt; Docs: Update docs to refer to column (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5937&quot;&gt;#5937&lt;/a&gt;) (Sashko Stubailo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a4f9c5a&quot;&gt;a4f9c5a&lt;/a&gt; Docs: Distinguish examples in rules under Stylistic Issues part 3 (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/249eb40&quot;&gt;249eb40&lt;/a&gt; Docs: Clarify init sets up local installation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5874&quot;&gt;#5874&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6cd8c86&quot;&gt;6cd8c86&lt;/a&gt; Docs: Describe options in rules under Possible Errors part 1 (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a02960b&quot;&gt;a02960b&lt;/a&gt; Docs: Fix missing delimiter in README links (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a9e72c&quot;&gt;3a9e72c&lt;/a&gt; Docs: Update developer guide with new standards (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74674ad&quot;&gt;74674ad&lt;/a&gt; Docs: Move &lt;code&gt;sort-imports&lt;/code&gt; to ‘ECMAScript 6’ (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae69ddb&quot;&gt;ae69ddb&lt;/a&gt; Docs: Fix severity type in example (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e4b0ca&quot;&gt;1e4b0ca&lt;/a&gt; Docs: Reduce length of paragraphs in rules index (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8cfe1eb&quot;&gt;8cfe1eb&lt;/a&gt; Docs: Fix a wrong option (Zach Orlovsky)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f6739f&quot;&gt;8f6739f&lt;/a&gt; Docs: Add alberto as reviewer (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ae4938&quot;&gt;2ae4938&lt;/a&gt; Docs: Fix message for &lt;code&gt;inline-config&lt;/code&gt; option (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/089900b&quot;&gt;089900b&lt;/a&gt; Docs: Fix a wrong rule name in an example (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c032b41&quot;&gt;c032b41&lt;/a&gt; Docs: Fix emphasis (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae606f0&quot;&gt;ae606f0&lt;/a&gt; Docs: Update JSCS info in README (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed38358&quot;&gt;ed38358&lt;/a&gt; Docs: Removed incorrect example (James M. Greene)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/af3113c&quot;&gt;af3113c&lt;/a&gt; Docs: Fix config comments in indent docs (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/23b00e0&quot;&gt;23b00e0&lt;/a&gt; Upgrade: npm-license to 0.3.2 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5996&quot;&gt;#5996&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5998&quot;&gt;#5998&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/377167d&quot;&gt;377167d&lt;/a&gt; Upgrade: ignore to 3.1.2 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5979&quot;&gt;#5979&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5988&quot;&gt;#5988&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25d626a&quot;&gt;25d626a&lt;/a&gt; Upgrade: espree 3.1.4 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5923&quot;&gt;#5923&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5756&quot;&gt;#5756&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0be26bc&quot;&gt;0be26bc&lt;/a&gt; Build: Add nodejs 6 to travis (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5971&quot;&gt;#5971&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5973&quot;&gt;#5973&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0023fe6&quot;&gt;0023fe6&lt;/a&gt; Build: Add “chore” to commit tags (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5880&quot;&gt;#5880&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5929&quot;&gt;#5929&lt;/a&gt;) (Mike Sherov)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;chores&quot; tabindex=&quot;-1&quot;&gt;Chores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/42d1ecc&quot;&gt;42d1ecc&lt;/a&gt; Chore: Add metadata to existing rules - Batch 7 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5417&quot;&gt;#5417&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5969&quot;&gt;#5969&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d24516a&quot;&gt;d24516a&lt;/a&gt; Chore: Add metadata to existing rules - Batch 6 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5417&quot;&gt;#5417&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5966&quot;&gt;#5966&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5f8abab&quot;&gt;5f8abab&lt;/a&gt; Chore: Add metadata to existing rules - Batch 5 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5417&quot;&gt;#5417&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5944&quot;&gt;#5944&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0562f77&quot;&gt;0562f77&lt;/a&gt; Chore: Add missing newlines to test cases (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5947&quot;&gt;#5947&lt;/a&gt;) (Rich Trott)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc78e78&quot;&gt;fc78e78&lt;/a&gt; Chore: Enable quote-props rule in eslint-config-eslint (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5188&quot;&gt;#5188&lt;/a&gt;) (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5938&quot;&gt;#5938&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e7c0737&quot;&gt;e7c0737&lt;/a&gt; Chore: Enable no-console rule in eslint-config-eslint (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5188&quot;&gt;#5188&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9afb9cb&quot;&gt;9afb9cb&lt;/a&gt; Chore: Remove workaround for espree and escope bugs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5852&quot;&gt;#5852&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ffc582&quot;&gt;3ffc582&lt;/a&gt; Chore: Update copyright and license info (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02be29f&quot;&gt;02be29f&lt;/a&gt; Chore: Remove CLA check from bot (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/220713e&quot;&gt;220713e&lt;/a&gt; Chore: Add metadata to existing rules - Batch 4 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5417&quot;&gt;#5417&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/df53414&quot;&gt;df53414&lt;/a&gt; Chore: Include jQuery Foundation info (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint Joins The jQuery Foundation</title>
    <link href="https://eslint.org/blog/2016/04/eslint-joins-the-jquery-foundation/"/>
    <updated>2016-04-19T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/04/eslint-joins-the-jquery-foundation/</id>
    <content type="html">&lt;p&gt;I’ve believed for a while that once an open source project reaches a certain level of ubiquity, the maintainers have a responsibility to ensure its survival for the good of the community. Over the past couple of years, I watched as important projects hit roadblocks: YUI abruptly shut down, Node.js splintered before merging back together, and Express was left in a state of disarray. Communities were left scrambling, unsure what to rely on. During this time, I started formulating a plan for how to keep ESLint from falling into the same pattern.&lt;/p&gt;
&lt;p&gt;Today, ESLint joins the jQuery Foundation to ensure that the project will live on for as long as the community needs it. The jQuery Foundation has been a great home for projects like jQuery and Esprima, and after merging with the Dojo Foundation, is also the home of projects such as Lodash and Grunt. I’m proud to have ESLint listed alongside some of the most important and influential projects in the JavaScript ecosystem.&lt;/p&gt;
&lt;p&gt;From my perspective, ESLint joining the jQuery Foundation ensures a few things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The project will go on even after I’ve left it. While I don’t have any plans to leave the project, history shows that it’s quite common for the creators of open source projects to eventually leave. From John Resig leaving jQuery to Ryan Dahl leaving Node.js, I can’t picture myself being immune from the same path.&lt;/li&gt;
&lt;li&gt;ESLint will never be “sold” to a company. As the events with Node.js and Express show, this type of relationship doesn’t always work out smoothly. I feel that the ESLint community deserves this type of guarantee so there’s no question about whether or not it’s safe to rely on ESLint.&lt;/li&gt;
&lt;li&gt;The ESLint project will be up-to-date with all the latest best practices and legal advice relevant to open source.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It’s my hope that these assurances will help the ESLint community to continue to grow and thrive.&lt;/p&gt;
&lt;h2 id=&quot;what-is-changing&quot; tabindex=&quot;-1&quot;&gt;What Is Changing&lt;/h2&gt;
&lt;p&gt;While the transition to the jQuery Foundation is mostly transparent, there are a few things that are changing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CLA&lt;/strong&gt; - ESLint will change from using its own CLA to the jQuery Foundation CLA. If you previously signed the ESLint CLA, we’ll be asking you to sign the jQuery Foundation CLA the next time you submit a pull request.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code of Conduct&lt;/strong&gt; - ESLint will change to use the jQuery Foundation Code of Conduct instead of our own. This change is minimal because we used the jQuery Foundation’s Code of Conduct as the model for own. The only real change here is that the Foundation will be overseeing the Code of Conduct and handling violations directly instead of being handled by the ESLint team.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Legal&lt;/strong&gt; - The jQuery Foundation will be handling all legal aspects of ESLint going forward. That means they are the copyright holders and will also be registering ESLint and the ESLint logo as trademarks to protect the project.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-isn%E2%80%99t-changing&quot; tabindex=&quot;-1&quot;&gt;What Isn’t Changing&lt;/h2&gt;
&lt;p&gt;Everything else will be the same as it always has been. Specifically:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We will continue to use the ESLint GitHub organization for all ESLint-related projects.&lt;/li&gt;
&lt;li&gt;The ESLint team will continue to maintain and develop ESLint going forward.&lt;/li&gt;
&lt;li&gt;All ESLint team members will continue to be team members.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;a-new-beginning&quot; tabindex=&quot;-1&quot;&gt;A New Beginning&lt;/h2&gt;
&lt;p&gt;I hope you’re as excited about ESLint joining the jQuery Foundation as I am. I see this as an important step in the life of ESLint as a whole. The ESLint community has made the project the success that it is, and moving ESLint into the jQuery Foundation is my way of saying that the project is, and always will be, for the community.&lt;/p&gt;
&lt;p&gt;– Nicholas&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.8.0 released</title>
    <link href="https://eslint.org/blog/2016/04/eslint-v2.8.0-released/"/>
    <updated>2016-04-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/04/eslint-v2.8.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/76913b6&quot;&gt;76913b6&lt;/a&gt; Update: Add metadata to existing rules - Batch 3 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5417&quot;&gt;#5417&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fb3c2eb&quot;&gt;fb3c2eb&lt;/a&gt; Update: allow template literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5234&quot;&gt;#5234&lt;/a&gt;) (Jonathan Haines)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a4a935&quot;&gt;5a4a935&lt;/a&gt; Update: Add metadata to existing rules - Batch 2 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5417&quot;&gt;#5417&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8db9c9&quot;&gt;f8db9c9&lt;/a&gt; Update: add nestedBinaryExpressions to no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3065&quot;&gt;#3065&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0045d57&quot;&gt;0045d57&lt;/a&gt; Update: &lt;code&gt;allowNamedFunctions&lt;/code&gt; in &lt;code&gt;prefer-arrow-callback&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5675&quot;&gt;#5675&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19da72a&quot;&gt;19da72a&lt;/a&gt; Update: Add metadata to existing rules - Batch 1 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5417&quot;&gt;#5417&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24b6215&quot;&gt;24b6215&lt;/a&gt; Update: Include ‘typeof’ in rule ‘no-constant-condition’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5228&quot;&gt;#5228&lt;/a&gt;) (Vamshi krishna)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6fd7d82&quot;&gt;6fd7d82&lt;/a&gt; Update: Change order in &lt;code&gt;eslint --init&lt;/code&gt; env options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5742&quot;&gt;#5742&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6703c02&quot;&gt;6703c02&lt;/a&gt; Update: no-useless-escape / exact locations of errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5751&quot;&gt;#5751&lt;/a&gt;) (Onur Temizkan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0e6bc4&quot;&gt;b0e6bc4&lt;/a&gt; Update: add allowEmptyCatch option to no-empty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5800&quot;&gt;#5800&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/228f201&quot;&gt;228f201&lt;/a&gt; Update: &lt;code&gt;commentPattern&lt;/code&gt; option for &lt;code&gt;no-fallthrough&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5757&quot;&gt;#5757&lt;/a&gt;) (Artyom Lvov)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b202fc&quot;&gt;2b202fc&lt;/a&gt; Update: Add ignore option to space-before-function-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4127&quot;&gt;#4127&lt;/a&gt;) (Craig Silverstein)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/34ad8d2&quot;&gt;34ad8d2&lt;/a&gt; Fix: Check that module.paths exists (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5791&quot;&gt;#5791&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea2e625&quot;&gt;ea2e625&lt;/a&gt; Fix: newline-before-return handles return as first token (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5816&quot;&gt;#5816&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc14e43&quot;&gt;cc14e43&lt;/a&gt; Fix: &lt;code&gt;no-fallthrough&lt;/code&gt; empty case with comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5799&quot;&gt;#5799&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13c8b14&quot;&gt;13c8b14&lt;/a&gt; Fix: LogicalExpression checks for short circuit (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5693&quot;&gt;#5693&lt;/a&gt;) (Vamshi krishna)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/73b225e&quot;&gt;73b225e&lt;/a&gt; Fix: Document and fix metadata (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5417&quot;&gt;#5417&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c59d909&quot;&gt;c59d909&lt;/a&gt; Fix: Extra paren check around object arrow bodies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5789&quot;&gt;#5789&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02743d5&quot;&gt;02743d5&lt;/a&gt; Fix: catch self-assignment operators in &lt;code&gt;no-magic-number&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4400&quot;&gt;#4400&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ccd8ca9&quot;&gt;ccd8ca9&lt;/a&gt; Fix: Added property onlyDeclaration to id-match rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3488&quot;&gt;#3488&lt;/a&gt;) (Gajus Kuizinas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3d84b91&quot;&gt;3d84b91&lt;/a&gt; Fix: ignore trailing whitespace in template literal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5786&quot;&gt;#5786&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24c12ba&quot;&gt;24c12ba&lt;/a&gt; Fix: improve &lt;code&gt;constructor-super&lt;/code&gt; errors for literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5449&quot;&gt;#5449&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8821a5&quot;&gt;a8821a5&lt;/a&gt; Docs: Distinguish examples in rules under Stylistic Issues part 2 (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/37239b1&quot;&gt;37239b1&lt;/a&gt; Docs: Add new members of the team (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/882d199&quot;&gt;882d199&lt;/a&gt; Docs: Improve options description in &lt;code&gt;no-redeclare&lt;/code&gt; (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6a71ceb&quot;&gt;6a71ceb&lt;/a&gt; Docs: Improve options description in &lt;code&gt;no-params-reassign&lt;/code&gt; (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a959063&quot;&gt;a959063&lt;/a&gt; Docs: Remove link to deprecated ESLintTester project (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3110&quot;&gt;#3110&lt;/a&gt;) (Trey Thomas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6f88546&quot;&gt;6f88546&lt;/a&gt; Docs: Use double quotes for better Win compatibility (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5796&quot;&gt;#5796&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c94e74e&quot;&gt;c94e74e&lt;/a&gt; Docs: Make rule descriptions more consistent (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6028252&quot;&gt;6028252&lt;/a&gt; Docs: Distinguish examples in rules under Stylistic Issues part 1 (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f1f1dd7&quot;&gt;f1f1dd7&lt;/a&gt; Docs: Add @pedrottimark as a committer (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/41db670&quot;&gt;41db670&lt;/a&gt; Docs: Clarify disable inline comments (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c9a295&quot;&gt;9c9a295&lt;/a&gt; Docs: Add note about shell vs node glob parameters in cli (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5308ff9&quot;&gt;5308ff9&lt;/a&gt; Docs: Add code backticks to sentence in fixable rules (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/965ec06&quot;&gt;965ec06&lt;/a&gt; Docs: fix the examples for space-before-function-paren. (Craig Silverstein)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Welcoming JSCS To ESLint</title>
    <link href="https://eslint.org/blog/2016/04/welcoming-jscs-to-eslint/"/>
    <updated>2016-04-14T17:13:45Z</updated>
    <id>https://eslint.org/blog/2016/04/welcoming-jscs-to-eslint/</id>
    <content type="html">&lt;p&gt;ESLint and &lt;a href=&quot;https://jscs-dev.github.io/&quot;&gt;JSCS&lt;/a&gt; started out at roughly the same time, just three weeks apart in 2013. Both teams had a similar idea: leverage the ecosystem of ESTree-compatible tools such as Esprima to create the next generation of static analysis tools for JavaScript. While ESLint’s primary goal was to create a linter with pluggable rules, JSCS’s primary goal was to codify style guides for easy verification and fixing. Both projects grew and became popular, and soon, we found ourselves playing catch up with each other for features.&lt;/p&gt;
&lt;p&gt;For nearly three years now, both teams have been working on solving the same types of issues: how to share configurations, how to autofix some problems, and how to enable the respective ecosystems to grow and thrive. We’ve been doing a lot of the same work in parallel, and recently the teams met to talk about that. We all came to the conclusion that it would be better to be one team, working together on solving these problems, rather than continuing to compete with one another.&lt;/p&gt;
&lt;p&gt;Below you’ll find more details about how we’ll move forward as a single team and our plans for both JSCS and ESLint.&lt;/p&gt;
&lt;h2 id=&quot;welcoming-the-jscs-team&quot; tabindex=&quot;-1&quot;&gt;Welcoming the JSCS Team&lt;/h2&gt;
&lt;p&gt;I’m happy to announce that, effectively immediately, the JSCS team is now part of the ESLint team. I’d like to invite everyone to welcome Marat Dulin, Oleg Gaidarenko, Mike Sherov, Alexej Yaroshevich, and Henry Zhu, and we’re looking forward to working with them all. All of the JSCS team members will be joining ESLint as committers (based on our &lt;a href=&quot;https://eslint.org/docs/maintainer-guide/governance.html#committers&quot;&gt;governance policy&lt;/a&gt;) for appreciation of their work on JSCS.&lt;/p&gt;
&lt;p&gt;Joel Kemp has decided to focus on other work and won’t be joining ESLint. I, and the rest of the team, would also like to thank Joel for his many contributions to JSCS over the years.&lt;/p&gt;
&lt;h2 id=&quot;jscs-3.0.0&quot; tabindex=&quot;-1&quot;&gt;JSCS 3.0.0&lt;/h2&gt;
&lt;p&gt;Today, &lt;a href=&quot;https://medium.com/@markelog/jscs-end-of-the-line-bc9bf0b3fdb2#.k5yf1bry8&quot;&gt;JSCS released version 3.0.0&lt;/a&gt;, which will be the last major release of JSCS. This version has been rewritten to use a concrete syntax tree (&lt;a href=&quot;https://github.com/cst/cst&quot;&gt;CST&lt;/a&gt;) instead of an abstract syntax tree (AST). The concept of a CST has been floating around the JavaScript ecosystem for quite some time, and JSCS 3.0.0 represents the first tool to fully realize the use of a JavaScript CST in production. As such, we really need feedback from the JSCS community relating to this release as it’s quite possible we’ll use either the same or a similar approach in ESLint going forward.&lt;/p&gt;
&lt;p&gt;If you’re a current JSCS user, I strongly urge you to upgrade to 3.0.0 and report your experience. The JSCS team will continue to work on JSCS in the near-term, fixing bugs as they are reported.&lt;/p&gt;
&lt;h2 id=&quot;making-eslint-work-for-jscs-users&quot; tabindex=&quot;-1&quot;&gt;Making ESLint Work for JSCS Users&lt;/h2&gt;
&lt;p&gt;We recognize that there is a large and vibrant JSCS user base, and as such, the first goal of the combined ESLint/JSCS team is to make the transition to ESLint easy for JSCS users. To that end, our immediate-term plan includes the following tasks:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Identifying rules that exist in JSCS but are missing in ESLint and creating as many of those rules as we can. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5856&quot;&gt;#5856&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Incorporating a way to convert &lt;code&gt;.jscsrc&lt;/code&gt; files into &lt;code&gt;.eslintrc&lt;/code&gt; files with the goal of having a single command to do this automatically. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5857&quot;&gt;#5857&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Creating ESLint shareable configs for the most popular JSCS presets. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5858&quot;&gt;#5858&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Expanding ESLint’s autofixing capabilities to fix more problems and try, as much as is possible, to approach the level of autofixing available in JSCS 2.x.&lt;/li&gt;
&lt;li&gt;Write documentation to guide JSCS users through transitioning to ESLint. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/5859&quot;&gt;#5859&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Check out our milestone on the tasks above &lt;a href=&quot;https://github.com/eslint/eslint/milestones/JSCS%20Compatibility&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We expect this effort to take several months, and as such, we still encourage current JSCS users to upgrade to JSCS 3.0.0 and provide feedback to the team. We’ll announce when all of the changes necessary to support JSCS users in ESLint are complete and will start encouraging JSCS users to switch to ESLint at that time.&lt;/p&gt;
&lt;h2 id=&quot;the-future-is-bright&quot; tabindex=&quot;-1&quot;&gt;The Future is Bright&lt;/h2&gt;
&lt;p&gt;With the new combined ESLint/JSCS team, you can expect a lot more from ESLint in the future. We now have some of the brightest people in the world working on making ESLint the best possible tool for JavaScript syntax analysis. I’m personally very excited about ESLint’s future and tackling some of the more difficult problems like making autofix possible for every rule and incorporating type information into our analysis. We can go a lot further, faster, when we’re all working on the same tool.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nicholas&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.7.0 released</title>
    <link href="https://eslint.org/blog/2016/04/eslint-v2.7.0-released/"/>
    <updated>2016-04-04T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/04/eslint-v2.7.0-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/161ddac&quot;&gt;161ddac&lt;/a&gt; Fix: remove &lt;code&gt;console.dir&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5770&quot;&gt;#5770&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c33f6a&quot;&gt;0c33f6a&lt;/a&gt; Fix: indent rule uses wrong node for class indent level (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5764&quot;&gt;#5764&lt;/a&gt;) (Paul O’Shannessy)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7e80867&quot;&gt;7e80867&lt;/a&gt; Docs: Update sentence in fixable rules (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f93c32&quot;&gt;4f93c32&lt;/a&gt; Docs: Clarify &lt;code&gt;array-bracket-spacing&lt;/code&gt; with newlines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5768&quot;&gt;#5768&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.6.0 released</title>
    <link href="https://eslint.org/blog/2016/04/eslint-v2.6.0-released/"/>
    <updated>2016-04-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/04/eslint-v2.6.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7aacba7&quot;&gt;7aacba7&lt;/a&gt; Update: Deprecate option &lt;code&gt;maximum&lt;/code&gt; in favor of &lt;code&gt;max&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5685&quot;&gt;#5685&lt;/a&gt;) (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b73ffd&quot;&gt;9b73ffd&lt;/a&gt; Update: &lt;code&gt;destructuring&lt;/code&gt; option of &lt;code&gt;prefer-const&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5594&quot;&gt;#5594&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24a61a4&quot;&gt;24a61a4&lt;/a&gt; Update: make &lt;code&gt;no-useless-escape&lt;/code&gt; allowing line breaks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5689&quot;&gt;#5689&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f59d91d&quot;&gt;f59d91d&lt;/a&gt; Update: no-param-reassign error msgs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5705&quot;&gt;#5705&lt;/a&gt;) (Isaac Levy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8d0cd0d&quot;&gt;8d0cd0d&lt;/a&gt; Update: Basic valid-jsdoc default parameter support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5658&quot;&gt;#5658&lt;/a&gt;) (Tom Andrews)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ce2accd&quot;&gt;ce2accd&lt;/a&gt; Fix: vars-on-top now accepts exported variables (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5711&quot;&gt;#5711&lt;/a&gt;) (Olmo Kramer)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5fe6fca&quot;&gt;5fe6fca&lt;/a&gt; Fix: no-useless-escape &#92;B regex escape (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5750&quot;&gt;#5750&lt;/a&gt;) (Onur Temizkan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12902c5&quot;&gt;12902c5&lt;/a&gt; Fix: valid-jsdoc crash w/ Field &amp;amp; Array Type (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5745&quot;&gt;#5745&lt;/a&gt;) (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5746&quot;&gt;#5746&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d736bc2&quot;&gt;d736bc2&lt;/a&gt; Fix: Treat SwitchCase like a block in lines-around-comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5718&quot;&gt;#5718&lt;/a&gt;) (Scott O’Hara)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4ecd45e&quot;&gt;4ecd45e&lt;/a&gt; Fix: Ensure proper lookup of config files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5175&quot;&gt;#5175&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5468&quot;&gt;#5468&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/088e26b&quot;&gt;088e26b&lt;/a&gt; Fix: Update doctrine to allow hyphens in JSDoc names (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5612&quot;&gt;#5612&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1b16cd&quot;&gt;c1b16cd&lt;/a&gt; Fix: Object spread throws error in key-spacing rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5724&quot;&gt;#5724&lt;/a&gt;) (Ziad El Khoury Hanna)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cb0f0be&quot;&gt;cb0f0be&lt;/a&gt; Fix: Lint issue with &lt;code&gt;valid-jsdoc&lt;/code&gt; rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5188&quot;&gt;#5188&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a35f127&quot;&gt;a35f127&lt;/a&gt; Fix: Lint for eslint project in regards to vars (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5188&quot;&gt;#5188&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d9ab4f0&quot;&gt;d9ab4f0&lt;/a&gt; Fix: Windows scoped package configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5644&quot;&gt;#5644&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ac9206&quot;&gt;8ac9206&lt;/a&gt; Docs: Typo in &lt;code&gt;sort-imports&lt;/code&gt; (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2c8b65a&quot;&gt;2c8b65a&lt;/a&gt; Docs: Edit examples for a few rules (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3091613&quot;&gt;3091613&lt;/a&gt; Docs: Correct explanation about properties (James Monger)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/692fd5d&quot;&gt;692fd5d&lt;/a&gt; Upgrade: Old Chalk.JS deprecated method (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5716&quot;&gt;#5716&lt;/a&gt;) (Morris Singer)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aba1954&quot;&gt;aba1954&lt;/a&gt; Build: Ignore jsdoc folder internally (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5714&quot;&gt;#5714&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Updated Rule Policy</title>
    <link href="https://eslint.org/blog/2016/03/updated-rule-policy/"/>
    <updated>2016-03-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/03/updated-rule-policy/</id>
    <content type="html">&lt;p&gt;Rules have been at the core of ESLint since the very first release. We’ve gone through several development cycles of rules, first trying to replicate JSHint rules, creating ECMAScript 6 rules as best practices were being uncovered, shooting for feature parity with JSCS rules, and so on. Now, almost three years after ESLint was first created, we have over &lt;a href=&quot;https://eslint.org/docs/rules/&quot;&gt;200 rules&lt;/a&gt; in the core and continue to get new rule proposals every week.&lt;/p&gt;
&lt;p&gt;When ESLint began, we wanted to have a good mix of rules that caught potential errors as well as rules about code style. We never intended to cover everything everyone would want, but rather, we wanted to cover the most common concerns facing JavaScript developers and leave the rest to custom rules. That’s why ESLint has supported &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-rules.html&quot;&gt;custom rules&lt;/a&gt; from the very first release: we knew that we could never provide the world with all of the rules that people would want, so the only real solution was to give everyone the ability to create their own rules.&lt;/p&gt;
&lt;p&gt;After a lot of deliberation, we’ve decided that we will only be accepting new rules into ESLint when the team believes that not doing so would do more harm than good. For instance, we are committed to helping people transfer from other linters to ESLint, and so we will still consider adding rules that make the transition easier. Similarly, if a rule flags a potentially serious or difficult-to-identify error, then we will consider it as well. Otherwise, we’ll be suggesting that people implement their own rules with &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-plugins.html&quot;&gt;plugins&lt;/a&gt; from now on.&lt;/p&gt;
&lt;p&gt;The community has written some excellent articles and tutorials about writing your own rules. Here are a few to get you started:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://gist.github.com/jareware/7179093&quot;&gt;Project-specific Lint Rules with ESLint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.paypal-engineering.com/2014/12/12/maintaining-javascript-code-quality-with-eslint/&quot;&gt;Maintaining JavaScript Code Quality with ESLint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.thecodecampus.de/eslint-customizable-javascript-linting-tool-2/&quot;&gt;ESLint - Customizable JavaScript Linting Tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://insideops.wordpress.com/2015/12/08/creating-custom-rules-for-eslint/&quot;&gt;Creating Custom Rules for ESLint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are a lot of great things ahead for ESLint, and we hope you’ll take this opportunity to learn more about writing and publishing your own rules.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.5.3 released</title>
    <link href="https://eslint.org/blog/2016/03/eslint-v2.5.3-released/"/>
    <updated>2016-03-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/03/eslint-v2.5.3-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h2 id=&quot;rolling-back-of-bundled-dependencies&quot; tabindex=&quot;-1&quot;&gt;Rolling Back of Bundled Dependencies&lt;/h2&gt;
&lt;p&gt;In v2.5.0, we started bundling dependencies with ESLint. The goal was to create a more stable ESLint package that was functional regardless of the state of npm. Unfortunately, this process turned out to be more complicated than we expected. As we continued to get bug reports over the past couple of days, we decided to revert the bundling of dependencies for now until we can investigate further.&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/98e6bd9&quot;&gt;98e6bd9&lt;/a&gt; Fix: Correct default for indentation in &lt;code&gt;eslint --init&lt;/code&gt; (fixes * &lt;a href=&quot;https://github.com/eslint/eslint/issues/5698&quot;&gt;#5698&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/679095e&quot;&gt;679095e&lt;/a&gt; Fix: make the default of &lt;code&gt;options.cwd&lt;/code&gt; in runtime (fixes * &lt;a href=&quot;https://github.com/eslint/eslint/issues/5694&quot;&gt;#5694&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c41fab9&quot;&gt;c41fab9&lt;/a&gt; Fix: don’t use path.extname with undefined value (fixes * &lt;a href=&quot;https://github.com/eslint/eslint/issues/5678&quot;&gt;#5678&lt;/a&gt;) (Myles Borins)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1cc7f8e&quot;&gt;1cc7f8e&lt;/a&gt; Docs: Remove mention of minimatch for .eslintignore (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5bd69a9&quot;&gt;5bd69a9&lt;/a&gt; Docs: Reorder FAQ in README (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f06f2f&quot;&gt;4f06f2f&lt;/a&gt; Docs: Distinguish examples in rules under Best Practices part 2 (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c5d954&quot;&gt;8c5d954&lt;/a&gt; Docs: Typo fix (István Donkó)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/09659d6&quot;&gt;09659d6&lt;/a&gt; Docs: Use string severity (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a4ae769&quot;&gt;a4ae769&lt;/a&gt; Docs: Manual changelog update for v2.5.1 (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8749ac5&quot;&gt;8749ac5&lt;/a&gt; Build: Disable bundling dependencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5687&quot;&gt;#5687&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/013a18e&quot;&gt;013a18e&lt;/a&gt; Build: Fix bundling script (fixes * &lt;a href=&quot;https://github.com/eslint/eslint/issues/5680&quot;&gt;#5680&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.5.0 released</title>
    <link href="https://eslint.org/blog/2016/03/eslint-v2.5.0-released/"/>
    <updated>2016-03-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/03/eslint-v2.5.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;node.js-without-openssl-compatibility&quot; tabindex=&quot;-1&quot;&gt;Node.js without OpenSSL Compatibility&lt;/h3&gt;
&lt;p&gt;Previously, the &lt;code&gt;--cache&lt;/code&gt; feature was using the Node.js &lt;code&gt;crypto&lt;/code&gt; module to calculate hashes of files to determine which files had changed. Because of this, ESLint wouldn’t work on Node.js compiled without OpenSSL. We changed the &lt;code&gt;--cache&lt;/code&gt; feature to use a third-party hash function instead, allowing us to remove our dependency on the Node.js &lt;code&gt;crypto&lt;/code&gt; module and ensure ESLint works fine for Node.js without OpenSSL.&lt;/p&gt;
&lt;h3 id=&quot;bundled-dependencies&quot; tabindex=&quot;-1&quot;&gt;Bundled Dependencies&lt;/h3&gt;
&lt;p&gt;This is the first version of ESLint that bundles its dependencies. &lt;a href=&quot;http://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm&quot;&gt;Recent events&lt;/a&gt; have made it clear that for a development tool like ESLint, bundling dependencies makes a lot of sense. This will ensure a couple of things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;That everyone using v2.5.0 of ESLint will be using the same dependencies, meaning that dependency updates won’t break a previously working ESLint version.&lt;/li&gt;
&lt;li&gt;We won’t fall victim to dependencies that were available at release time suddenly disappearing.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Bundling dependencies does mean that npm cannot dedupe ESLint dependencies upon installation, but as ESLint is a development tool only, we felt like this tradeoff was worth making to ensure that any given ESLint version that was validated to work at release time will continue to work for everyone no matter what.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-useless-escape&quot;&gt;‘no-useless-escape’&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/max-statements-per-line&quot;&gt;‘max-statements-per-line’&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-duplicate-imports&quot;&gt;‘no-duplicate-imports’&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d6f8409&quot;&gt;d6f8409&lt;/a&gt; New: Rule - No useless escape (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5460&quot;&gt;#5460&lt;/a&gt;) (Onur Temizkan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/92d1749&quot;&gt;92d1749&lt;/a&gt; New: max-statements-per-line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5424&quot;&gt;#5424&lt;/a&gt;) (Kenneth Williams)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c289414&quot;&gt;c289414&lt;/a&gt; New: &lt;code&gt;no-duplicate-imports&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3478&quot;&gt;#3478&lt;/a&gt;) (Simen Bekkhus)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/48ad5fe&quot;&gt;48ad5fe&lt;/a&gt; Update: Add ‘caughtErrors’ to rule no-unused-vars (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3837&quot;&gt;#3837&lt;/a&gt;) (vamshi)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0ae66c&quot;&gt;d0ae66c&lt;/a&gt; Update: Allow autoconfiguration for JSX code (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5511&quot;&gt;#5511&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b05ce6&quot;&gt;4b05ce6&lt;/a&gt; Update: Enforce repo coding conventions via ESLint (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5188&quot;&gt;#5188&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03037c2&quot;&gt;03037c2&lt;/a&gt; Update: Overrides for space-unary-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5060&quot;&gt;#5060&lt;/a&gt;) (Afnan Fahim)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/24d986a&quot;&gt;24d986a&lt;/a&gt; Update: replace MD5 hashing of cache files with MurmurHash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5522&quot;&gt;#5522&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7021aa9&quot;&gt;7021aa9&lt;/a&gt; Fix: lines-around-comment in ESLint repo, part 2 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5188&quot;&gt;#5188&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aaf324a&quot;&gt;aaf324a&lt;/a&gt; Fix: missing support for json sub configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5413&quot;&gt;#5413&lt;/a&gt;) (Noam Okman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad90c2b&quot;&gt;ad90c2b&lt;/a&gt; Fix: incorrect config message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5653&quot;&gt;#5653&lt;/a&gt;) (s0ph1e)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/32748dc&quot;&gt;32748dc&lt;/a&gt; Fix: &lt;code&gt;radix&lt;/code&gt; rule false positive at shadowed variables (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5639&quot;&gt;#5639&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/66db38d&quot;&gt;66db38d&lt;/a&gt; Fix: &lt;code&gt;--no-ignore&lt;/code&gt; should not un-ignore default ignores (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5547&quot;&gt;#5547&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b7305e&quot;&gt;4b7305e&lt;/a&gt; Fix: Allow default ignored files to be unignored (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5410&quot;&gt;#5410&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9a22625&quot;&gt;9a22625&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; false positive at non-blocked if (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5610&quot;&gt;#5610&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1fd482&quot;&gt;b1fd482&lt;/a&gt; Fix: leading comments added from previous node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5531&quot;&gt;#5531&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e94b77d&quot;&gt;e94b77d&lt;/a&gt; Fix: Respect ‘ignoreTrailingComments’ in max-len rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5563&quot;&gt;#5563&lt;/a&gt;) (Vamshi Krishna)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9289ef8&quot;&gt;9289ef8&lt;/a&gt; Fix: handle personal package.json without config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5496&quot;&gt;#5496&lt;/a&gt;) (Denny Christochowitz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/87d74b2&quot;&gt;87d74b2&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; got to not change scopes (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5284&quot;&gt;#5284&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f405030&quot;&gt;f405030&lt;/a&gt; Fix: Ensure allowing &lt;code&gt;await&lt;/code&gt; as a property name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5564&quot;&gt;#5564&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aefc90c&quot;&gt;aefc90c&lt;/a&gt; Fix: &lt;code&gt;no-useless-constructor&lt;/code&gt; clash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5573&quot;&gt;#5573&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cfc14a9&quot;&gt;cfc14a9&lt;/a&gt; Fix: valid-jsdoc correctly checks type union (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5260&quot;&gt;#5260&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/689cb7d&quot;&gt;689cb7d&lt;/a&gt; Fix: &lt;code&gt;quote-props&lt;/code&gt; false positive on certain keys (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5532&quot;&gt;#5532&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/167a03a&quot;&gt;167a03a&lt;/a&gt; Fix: &lt;code&gt;brace-style&lt;/code&gt; erroneously ignoring certain errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5197&quot;&gt;#5197&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3133f28&quot;&gt;3133f28&lt;/a&gt; Fix: object-curly-spacing doesn’t know types (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5537&quot;&gt;#5537&lt;/a&gt;) (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5538&quot;&gt;#5538&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bc769ca&quot;&gt;bc769ca&lt;/a&gt; Fix: Improve file path resolution (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5314&quot;&gt;#5314&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/095c435&quot;&gt;095c435&lt;/a&gt; Docs: Remove ES2016 from experimental section of README (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ea06868&quot;&gt;ea06868&lt;/a&gt; Docs: Clarify --ext does not apply to globs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5452&quot;&gt;#5452&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6022426&quot;&gt;6022426&lt;/a&gt; Docs: Add link to chat room in README primary links (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2fbb530&quot;&gt;2fbb530&lt;/a&gt; Docs: Add link to “Proposing a Rule Change” in README (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12a43f1&quot;&gt;12a43f1&lt;/a&gt; Docs: remove brace expansion from &lt;a href=&quot;http://configuring.md/&quot;&gt;configuring.md&lt;/a&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5314&quot;&gt;#5314&lt;/a&gt;) (Jonathan Haines)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a551831&quot;&gt;a551831&lt;/a&gt; Docs: Distinguish examples in rules under Node.js and CommonJS (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3e06f3&quot;&gt;e3e06f3&lt;/a&gt; Docs: Distinguish examples in rules under Best Practices part 4 (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a9f0865&quot;&gt;a9f0865&lt;/a&gt; Docs: Update no-sequences rule docs for clarity (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5536&quot;&gt;#5536&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bae7b30&quot;&gt;bae7b30&lt;/a&gt; Docs: Add michaelficarra as committer (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2990e7&quot;&gt;e2990e7&lt;/a&gt; Docs: Consistent wording in rules README (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/49b4d2a&quot;&gt;49b4d2a&lt;/a&gt; Docs: Update team list with new members (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38a0a64&quot;&gt;38a0a64&lt;/a&gt; Docs: Clarify &lt;code&gt;linebreak-style&lt;/code&gt; docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5628&quot;&gt;#5628&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/051b255&quot;&gt;051b255&lt;/a&gt; Docs: Remove or rewrite references to former ecmaFeatures (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c335650&quot;&gt;c335650&lt;/a&gt; Docs: correct the no-confusing-arrow docs (Daniel Norman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a881e7&quot;&gt;5a881e7&lt;/a&gt; Docs: Fix typo in code snippet for no-unmodified-loop-condition rule (Chris Rebert)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9eaa20d&quot;&gt;9eaa20d&lt;/a&gt; Docs: Fix typo in CLI help message (ryym)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a7c3e67&quot;&gt;a7c3e67&lt;/a&gt; Docs: Invalid json in &lt;code&gt;configuring.md&lt;/code&gt; (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e50332&quot;&gt;4e50332&lt;/a&gt; Docs: Make &lt;code&gt;prefer-template&lt;/code&gt; examples consistent. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d0ca171&quot;&gt;d0ca171&lt;/a&gt; Docs: Separate parser and config questions in issue template (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ca8567&quot;&gt;9ca8567&lt;/a&gt; Docs: Distinguish examples in rules under Best Practices part 3 (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9c69f1&quot;&gt;b9c69f1&lt;/a&gt; Docs: Distinguish examples in rules under Variables part 2 (Mark Pedrotti)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25bf491&quot;&gt;25bf491&lt;/a&gt; Upgrade: globals 9.x (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5668&quot;&gt;#5668&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/83cd651&quot;&gt;83cd651&lt;/a&gt; Upgrade: chai to 3.5.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5647&quot;&gt;#5647&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/646f863&quot;&gt;646f863&lt;/a&gt; Build: Bundle dependencies in package.json (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5013&quot;&gt;#5013&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/569c478&quot;&gt;569c478&lt;/a&gt; Build: Fix phantomjs CI problems (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5666&quot;&gt;#5666&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.4.0 released</title>
    <link href="https://eslint.org/blog/2016/03/eslint-v2.4.0-released/"/>
    <updated>2016-03-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/03/eslint-v2.4.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;babel-eslint-compatibility-fix&quot; tabindex=&quot;-1&quot;&gt;babel-eslint Compatibility Fix&lt;/h3&gt;
&lt;p&gt;The v2.3.0 release introduced a change that broke compatibility with &lt;code&gt;babel-eslint&lt;/code&gt;. We realize that a lot of you depend on &lt;code&gt;babel-eslint&lt;/code&gt; and so we wanted to make sure to restore compatibility as quickly as possible. We couldn’t undo the change that cause the problem as it would have caused a regression for ESLint, and it took us some time to figure out the right approach to solve the problem.&lt;/p&gt;
&lt;p&gt;With v2.4.0, &lt;code&gt;babel-eslint&lt;/code&gt; compatibility is now restored with a permanent solution that should prevent this from happening again. We appreciate your patience as we tried to determine the best long-term solution.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13ef1c7&quot;&gt;13ef1c7&lt;/a&gt; New: add &lt;code&gt;--parser-options&lt;/code&gt; to CLI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5495&quot;&gt;#5495&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c6c70c&quot;&gt;9c6c70c&lt;/a&gt; Update: add &lt;code&gt;allowParens&lt;/code&gt; option to &lt;code&gt;no-confusing-arrow&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5332&quot;&gt;#5332&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97b2466&quot;&gt;97b2466&lt;/a&gt; Fix: estraverse/escope to work with unknowns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5476&quot;&gt;#5476&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/641b3f7&quot;&gt;641b3f7&lt;/a&gt; Fix: validate the type of severity level (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5499&quot;&gt;#5499&lt;/a&gt;) (Shinnosuke Watanabe)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/03e6869&quot;&gt;03e6869&lt;/a&gt; Fix: newline-before-return: bug with comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5480&quot;&gt;#5480&lt;/a&gt;) (mustafa)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ad100fd&quot;&gt;ad100fd&lt;/a&gt; Fix: overindent in VariableDeclarator parens or brackets (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5492&quot;&gt;#5492&lt;/a&gt;) (David Greenspan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9f18a81&quot;&gt;9f18a81&lt;/a&gt; Fix: Ignore destructuring assignment in &lt;code&gt;object-shorthand&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5488&quot;&gt;#5488&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/38eb7f1&quot;&gt;38eb7f1&lt;/a&gt; Fix: key-spacing checks ObjectExpression is multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5479&quot;&gt;#5479&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9592c45&quot;&gt;9592c45&lt;/a&gt; Fix: &lt;code&gt;no-unmodified-loop-condition&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5445&quot;&gt;#5445&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ee8869&quot;&gt;9ee8869&lt;/a&gt; Docs: no-unused-expressions - add more edge unusable and usable examples (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/56bf864&quot;&gt;56bf864&lt;/a&gt; Docs: Create parity between no-sequences examples (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae1ee54&quot;&gt;ae1ee54&lt;/a&gt; Docs: fix func-style arrow exception option (Craig Martin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/91852fd&quot;&gt;91852fd&lt;/a&gt; Docs: no-lone-blocks - show non-problematic (and problematic) label (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b34458f&quot;&gt;b34458f&lt;/a&gt; Docs: Rearrange rules for better categories (and improve rule summaries) (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1198b26&quot;&gt;1198b26&lt;/a&gt; Docs: Minor README clarifications (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9b8e04b&quot;&gt;9b8e04b&lt;/a&gt; Docs: Replace all node references to Node.js which is the official name (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc1f2f0&quot;&gt;cc1f2f0&lt;/a&gt; Docs: Minor fixes in no-new-func (Brett Zamir)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ab81d4&quot;&gt;6ab81d4&lt;/a&gt; Docs: Distinguish examples in rules under Best Practices part 1 (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/979c096&quot;&gt;979c096&lt;/a&gt; Docs: Document linebreak-style as fixable. (Afnan Fahim)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5d9a798&quot;&gt;5d9a798&lt;/a&gt; Docs: &lt;a href=&quot;http://readme.md/&quot;&gt;README.md&lt;/a&gt;, prefer-const; change modified to reassigned (Michiel de Bruijne)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.3.0 released</title>
    <link href="https://eslint.org/blog/2016/03/eslint-v2.3.0-released/"/>
    <updated>2016-03-04T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/03/eslint-v2.3.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some highlights of changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;support-for-string-severity-in-configs&quot; tabindex=&quot;-1&quot;&gt;Support for string severity in configs&lt;/h3&gt;
&lt;p&gt;v2.3.0 introduces ability to use strings as severity level in configuration files. Before you had to use number 0, 1 and 2 to configure rules. Now we also added ability to use strings. You can now use:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;off&lt;/code&gt; - 0&lt;/li&gt;
&lt;li&gt;&lt;code&gt;warn&lt;/code&gt; - 1&lt;/li&gt;
&lt;li&gt;&lt;code&gt;error&lt;/code&gt; - 2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both string and int values will work the same way&lt;/p&gt;
&lt;h3 id=&quot;ecmascript-version-7-support&quot; tabindex=&quot;-1&quot;&gt;EcmaScript version 7 Support&lt;/h3&gt;
&lt;p&gt;We recently updated our parser &lt;a href=&quot;https://github.com/eslint/espree&quot;&gt;Espree&lt;/a&gt; with support for new exponentiation operator. You can now set &lt;code&gt;ecmaVersion&lt;/code&gt; to 7 under &lt;code&gt;parserOptions&lt;/code&gt;. We also updated &lt;a href=&quot;https://eslint.org/docs/rules/space-infix-ops&quot;&gt;space-infix-ops&lt;/a&gt; to support new &lt;code&gt;**&lt;/code&gt; operator.&lt;/p&gt;
&lt;h3 id=&quot;improved-error-messaging-for-plugins&quot; tabindex=&quot;-1&quot;&gt;Improved error messaging for plugins&lt;/h3&gt;
&lt;p&gt;If ESLint fails to find a plugin required by the config file, we will now print a clear message explaining to user what needs to be done to fix this issue.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9e9daab&quot;&gt;9e9daab&lt;/a&gt; New: newline-before-return rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5009&quot;&gt;#5009&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/560c0d9&quot;&gt;560c0d9&lt;/a&gt; New: no-restricted-globals rule implementation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3966&quot;&gt;#3966&lt;/a&gt;) (Benoît Zugmeyer)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1b2c6e0&quot;&gt;1b2c6e0&lt;/a&gt; Update: Proposed no-magic-numbers option: ignoreJSXNumbers (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5348&quot;&gt;#5348&lt;/a&gt;) (Brandon Beeks)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0547072&quot;&gt;0547072&lt;/a&gt; Update: Replace getLast() with lodash.last() (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5456&quot;&gt;#5456&lt;/a&gt;) (Jordan Eldredge)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4a67b9a&quot;&gt;4a67b9a&lt;/a&gt; Update: Add ES7 support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5401&quot;&gt;#5401&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4f82b2b&quot;&gt;4f82b2b&lt;/a&gt; Update: Support classes in &lt;code&gt;padded-blocks&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5092&quot;&gt;#5092&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/70e3a02&quot;&gt;70e3a02&lt;/a&gt; Update: Allow string severity in config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3626&quot;&gt;#3626&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13c7c19&quot;&gt;13c7c19&lt;/a&gt; Update: Exclude ES5 constructors from consistent-return (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5379&quot;&gt;#5379&lt;/a&gt;) (Kevin Locke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6280b2d&quot;&gt;6280b2d&lt;/a&gt; Update: Support switch statements in padded-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5056&quot;&gt;#5056&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8f6c2e7&quot;&gt;8f6c2e7&lt;/a&gt; Update: Better error message for plugins (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5221&quot;&gt;#5221&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/972d41b&quot;&gt;972d41b&lt;/a&gt; Update: Improve error message for rule-tester (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5369&quot;&gt;#5369&lt;/a&gt;) (Jeroen Engels)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f9fd10&quot;&gt;1f9fd10&lt;/a&gt; Update: no-invalid-regexp allows custom flags (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5249&quot;&gt;#5249&lt;/a&gt;) (Afnan Fahim)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6aa2380&quot;&gt;6aa2380&lt;/a&gt; Update: prefer-const; change modified to reassigned (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5350&quot;&gt;#5350&lt;/a&gt;) (Michiel de Bruijne)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/50f4d5a&quot;&gt;50f4d5a&lt;/a&gt; Fix: extends chain (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5411&quot;&gt;#5411&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1da2420&quot;&gt;1da2420&lt;/a&gt; Fix: crash when SourceCode object was reused (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5007&quot;&gt;#5007&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1bbe45&quot;&gt;e1bbe45&lt;/a&gt; Fix: Check space after anonymous generator star (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5435&quot;&gt;#5435&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/905c049&quot;&gt;905c049&lt;/a&gt; Fix: &lt;code&gt;no-undef&lt;/code&gt; false positive at new.target (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5420&quot;&gt;#5420&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/de0a4ef&quot;&gt;de0a4ef&lt;/a&gt; Fix: &lt;code&gt;getFormatter&lt;/code&gt; throws an error when called as static (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5378&quot;&gt;#5378&lt;/a&gt;) (cowchimp)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/78f7ca9&quot;&gt;78f7ca9&lt;/a&gt; Fix: Prevent crash from swallowing console.log (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5381&quot;&gt;#5381&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/34b648d&quot;&gt;34b648d&lt;/a&gt; Fix: remove tests which have invalid syntax (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5405&quot;&gt;#5405&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cf14c71&quot;&gt;cf14c71&lt;/a&gt; Fix: &lt;code&gt;no-useless-constructor&lt;/code&gt; rule crashes sometimes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5290&quot;&gt;#5290&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/784d3bf&quot;&gt;784d3bf&lt;/a&gt; Fix: Location info in &lt;code&gt;dot-notation&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5397&quot;&gt;#5397&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/25a5b2c&quot;&gt;25a5b2c&lt;/a&gt; Fix: Allow irregular whitespace in comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5368&quot;&gt;#5368&lt;/a&gt;) (Christophe Porteneuve)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5bb478&quot;&gt;c5bb478&lt;/a&gt; Fix: &lt;code&gt;constructor-super&lt;/code&gt; false positive after a loop (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5394&quot;&gt;#5394&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1170e67&quot;&gt;1170e67&lt;/a&gt; Fix: indent rule doesn’t handle constructor instantiation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5384&quot;&gt;#5384&lt;/a&gt;) (Nate Cavanaugh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6bc9932&quot;&gt;6bc9932&lt;/a&gt; Fix: Avoid magic numbers in rule options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4182&quot;&gt;#4182&lt;/a&gt;) (Brandon Beeks)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/694e1c1&quot;&gt;694e1c1&lt;/a&gt; Fix: Add tests to cover default magic number tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5385&quot;&gt;#5385&lt;/a&gt;) (Brandon Beeks)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b5349d&quot;&gt;0b5349d&lt;/a&gt; Fix: .eslintignore paths should be absolute (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5362&quot;&gt;#5362&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fe3f6bd&quot;&gt;fe3f6bd&lt;/a&gt; Fix: &lt;code&gt;no-self-assign&lt;/code&gt; false positive at shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5371&quot;&gt;#5371&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f1eab9b&quot;&gt;f1eab9b&lt;/a&gt; Fix: Support for dash and slash in &lt;code&gt;valid-jsdoc&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1598&quot;&gt;#1598&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cd12a4b&quot;&gt;cd12a4b&lt;/a&gt; Fix:&lt;code&gt;newline-per-chained-call&lt;/code&gt; should only warn on methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5289&quot;&gt;#5289&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d1d62c6&quot;&gt;d1d62c6&lt;/a&gt; Fix: indent check for else keyword with Stroustrup style (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5218&quot;&gt;#5218&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1c347f5&quot;&gt;1c347f5&lt;/a&gt; Fix: Cleanup temp files from tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5338&quot;&gt;#5338&lt;/a&gt;) (Nick)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/63c0b7d&quot;&gt;63c0b7d&lt;/a&gt; Docs: Fix incorrect environment ref. in Rules in Plugins. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5421&quot;&gt;#5421&lt;/a&gt;) (Jesse McCarthy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d3831b&quot;&gt;0d3831b&lt;/a&gt; Docs: Add RuleTester parserOptions migration steps (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8c29946&quot;&gt;8c29946&lt;/a&gt; Docs: Distinguish examples in rules under Possible Errors part 1 (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5319b4a&quot;&gt;5319b4a&lt;/a&gt; Docs: Distinguish examples in rules under Possible Errors part 2 (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/119e0ed&quot;&gt;119e0ed&lt;/a&gt; Docs: Distinguish examples in rules under Variables (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/89c757d&quot;&gt;89c757d&lt;/a&gt; Docs: Replace ecmaFeatures with parserOptions in working-with-rules (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/804c08e&quot;&gt;804c08e&lt;/a&gt; Docs: Add parserOptions to RuleTester section of working-with-rules (Kevin Partington)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1982c50&quot;&gt;1982c50&lt;/a&gt; Docs: Document string option for &lt;code&gt;no-unused-vars&lt;/code&gt;. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ed5564f&quot;&gt;ed5564f&lt;/a&gt; Docs: Specify results of &lt;code&gt;no-unused-var&lt;/code&gt; with &lt;code&gt;args&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5334&quot;&gt;#5334&lt;/a&gt;) (chinesedfan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7de5ae4&quot;&gt;7de5ae4&lt;/a&gt; Docs: Missing allow option in  docs (Scott O’Hara)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c0c4aa&quot;&gt;6c0c4aa&lt;/a&gt; Docs: Add Issue template (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5313&quot;&gt;#5313&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2376291&quot;&gt;2376291&lt;/a&gt; Docs: Missing space in &lt;code&gt;no-fallthrough&lt;/code&gt; doc. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5aedb87&quot;&gt;5aedb87&lt;/a&gt; Docs: Add mysticatea as reviewer (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d1377d&quot;&gt;0d1377d&lt;/a&gt; Docs: Add missing &lt;code&gt;symbol&lt;/code&gt; type into valid list (Plusb Preco)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/36f40c2&quot;&gt;36f40c2&lt;/a&gt; Docs: Achieve consistent order of h2 in rule pages (Mark Pedrotti)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/124c447&quot;&gt;124c447&lt;/a&gt; Build: Add additional linebreak to docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5464&quot;&gt;#5464&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7932f78&quot;&gt;7932f78&lt;/a&gt; Build: Fix commit message validation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5340&quot;&gt;#5340&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2f3e1ae&quot;&gt;2f3e1ae&lt;/a&gt; Build: Change rules to warnings in perf test (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5330&quot;&gt;#5330&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.2.0 released</title>
    <link href="https://eslint.org/blog/2016/02/eslint-v2.2.0-released/"/>
    <updated>2016-02-19T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/02/eslint-v2.2.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/59e9c5b&quot;&gt;59e9c5b&lt;/a&gt; New: eslint-disable-next-line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5206&quot;&gt;#5206&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2977248&quot;&gt;2977248&lt;/a&gt; Fix: Do not cache &lt;code&gt;.eslintrc.js&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5067&quot;&gt;#5067&lt;/a&gt;) (Nick)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/211eb8f&quot;&gt;211eb8f&lt;/a&gt; Fix: no-multi-spaces conflicts with smart tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2077&quot;&gt;#2077&lt;/a&gt;) (Afnan Fahim)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6dc9483&quot;&gt;6dc9483&lt;/a&gt; Fix: Crash in &lt;code&gt;constructor-super&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5319&quot;&gt;#5319&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7020b82&quot;&gt;7020b82&lt;/a&gt; Fix: &lt;code&gt;sort-imports&lt;/code&gt; warned between default and members (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5305&quot;&gt;#5305&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2f4cd1c&quot;&gt;2f4cd1c&lt;/a&gt; Fix: &lt;code&gt;constructor-super&lt;/code&gt; and &lt;code&gt;no-this-before-super&lt;/code&gt; false (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5261&quot;&gt;#5261&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afb6708&quot;&gt;afb6708&lt;/a&gt; Fix: &lt;code&gt;indent&lt;/code&gt; rule forgot about some CallExpressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5295&quot;&gt;#5295&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b1cd19&quot;&gt;0b1cd19&lt;/a&gt; Fix: Ignore parser option if set to default parser (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5241&quot;&gt;#5241&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/45a22b5&quot;&gt;45a22b5&lt;/a&gt; Docs: remove esprima-fb from suggested parsers (Henry Zhu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a4d9cd3&quot;&gt;a4d9cd3&lt;/a&gt; Docs: Fix semi rule typo (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9d005c0&quot;&gt;9d005c0&lt;/a&gt; Docs: Correct option name in &lt;code&gt;no-implicit-coercion&lt;/code&gt; rule (Neil Kistner)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3f48875&quot;&gt;3f48875&lt;/a&gt; Docs: Fix yield star spacing examples (Dmitriy Lazarev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4dab76e&quot;&gt;4dab76e&lt;/a&gt; Docs: Update &lt;code&gt;preferType&lt;/code&gt; heading to keep code format (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5307&quot;&gt;#5307&lt;/a&gt;) (chinesedfan)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d18d406&quot;&gt;d18d406&lt;/a&gt; Docs: Update PR creation bot message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5268&quot;&gt;#5268&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.1.0 released</title>
    <link href="https://eslint.org/blog/2016/02/eslint-v2.1.0-released/"/>
    <updated>2016-02-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/02/eslint-v2.1.0-released/</id>
    <content type="html">&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d6850e&quot;&gt;0d6850e&lt;/a&gt; Update: Allow var declaration at end of block (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5246&quot;&gt;#5246&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c9c34ea&quot;&gt;c9c34ea&lt;/a&gt; Fix: Skip computed members in &lt;code&gt;newline-per-chained-call&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5245&quot;&gt;#5245&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29da8aa&quot;&gt;29da8aa&lt;/a&gt; Fix: &lt;code&gt;newline-after-var&lt;/code&gt; crash on a switch statement (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5277&quot;&gt;#5277&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86c5a20&quot;&gt;86c5a20&lt;/a&gt; Fix: &lt;code&gt;func-style&lt;/code&gt; should ignore ExportDefaultDeclarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5183&quot;&gt;#5183&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba287aa&quot;&gt;ba287aa&lt;/a&gt; Fix: Consolidate try/catches to top levels (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5243&quot;&gt;#5243&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1e3a73&quot;&gt;c1e3a73&lt;/a&gt; Fix: Popular style init handles missing package.json keys (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5243&quot;&gt;#5243&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9078537&quot;&gt;9078537&lt;/a&gt; Fix: &lt;code&gt;indent&lt;/code&gt; on variable declaration with separate array (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5237&quot;&gt;#5237&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/44f6915&quot;&gt;44f6915&lt;/a&gt; Fix: ESLint Bot mentions the wrong person for extra info (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5229&quot;&gt;#5229&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c612a8e&quot;&gt;c612a8e&lt;/a&gt; Fix: &lt;code&gt;no-empty-function&lt;/code&gt; crash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5227&quot;&gt;#5227&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/980e139&quot;&gt;980e139&lt;/a&gt; Fix: Combine all answers for processAnswers (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5220&quot;&gt;#5220&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6580d1c&quot;&gt;6580d1c&lt;/a&gt; Docs: Fix incorrect &lt;code&gt;api.verify&lt;/code&gt; JSDoc for &lt;code&gt;config&lt;/code&gt; param (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5104&quot;&gt;#5104&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f47868&quot;&gt;1f47868&lt;/a&gt; Docs: Update yield-star-spacing documentation for 2.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5272&quot;&gt;#5272&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3ef5da1&quot;&gt;3ef5da1&lt;/a&gt; Docs: Update no-magic-numbers#ignorearrayindexes. (KazuakiM)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/68c6e22&quot;&gt;68c6e22&lt;/a&gt; Docs: fix default value of &lt;code&gt;keyword-spacing&lt;/code&gt;’s overrides option. (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ef729d7&quot;&gt;ef729d7&lt;/a&gt; Docs: Remove option that is not being used in max-len rule (Thanos Lefteris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4a5ddd5&quot;&gt;4a5ddd5&lt;/a&gt; Docs: Fix rule config above examples for require-jsdoc (Thanos Lefteris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c5cbc1b&quot;&gt;c5cbc1b&lt;/a&gt; Docs: Add rule config above each example in jsx-quotes (Thanos Lefteris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f0aceba&quot;&gt;f0aceba&lt;/a&gt; Docs: Correct alphabetical ordering in rule list (Randy Coulman)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1651ffa&quot;&gt;1651ffa&lt;/a&gt; Docs: update migrating to 2.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5232&quot;&gt;#5232&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f8868b2&quot;&gt;f8868b2&lt;/a&gt; Docs: Typo fix in consistent-this rule doc fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5240&quot;&gt;#5240&lt;/a&gt; (Nicolas Froidure)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ae663b6&quot;&gt;ae663b6&lt;/a&gt; Docs: Add links for issue documentation (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1f2a1d5&quot;&gt;1f2a1d5&lt;/a&gt; Docs: Remove inline errors from doc examples (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4104&quot;&gt;#4104&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/00fe46f&quot;&gt;00fe46f&lt;/a&gt; Upgrade: inquirer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5265&quot;&gt;#5265&lt;/a&gt;) (Bogdan Chadkin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7981ef5&quot;&gt;7981ef5&lt;/a&gt; Build: Fix release script (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b32ddad&quot;&gt;b32ddad&lt;/a&gt; Build: &lt;code&gt;npm run perf&lt;/code&gt; command should check the exit code (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5279&quot;&gt;#5279&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/717bede&quot;&gt;717bede&lt;/a&gt; Build: Switch to using eslint-release (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5223&quot;&gt;#5223&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.0.0 released</title>
    <link href="https://eslint.org/blog/2016/02/eslint-v2.0.0-released/"/>
    <updated>2016-02-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/02/eslint-v2.0.0-released/</id>
    <content type="html">&lt;p&gt;In this announcement, we are including all changes from each of the release candidates to make it easier to see what changed from the release candidates to now.&lt;/p&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a major release version, you will not automatically be upgraded by npm in most cases. You must specify the &lt;code&gt;latest&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@latest --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@2.0.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h3 id=&quot;code-path-analysis&quot; tabindex=&quot;-1&quot;&gt;Code Path Analysis&lt;/h3&gt;
&lt;p&gt;ESLint v2.0.0 formally introduces &lt;a href=&quot;https://eslint.org/docs/developer-guide/code-path-analysis.html&quot;&gt;code path analysis&lt;/a&gt;. While we’ve tried to make best guesses at how execution flowed through code, there were several instances where we just couldn’t get everything correct. For instance, trying to guarantee that every code path contained a &lt;code&gt;return&lt;/code&gt; statement. Fully implementing code path analysis means that we (and you, through custom rules) can now correctly understand how execution is proceeding through code. Several rules have been updated to make use of code path analysis, fixing some longtime bugs in existing rules. As a result, ESLint is even better at picking up certain types of errors.&lt;/p&gt;
&lt;h2 id=&quot;configuration-cascading-changes&quot; tabindex=&quot;-1&quot;&gt;Configuration Cascading Changes&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, if a directory contained both an &lt;code&gt;.eslintrc&lt;/code&gt; file and a &lt;code&gt;package.json&lt;/code&gt; file with ESLint configuration information, the settings from the two files would be merged together. In 2.0.0, only the settings from the &lt;code&gt;.eslintrc.*&lt;/code&gt; file are used and the ones in &lt;code&gt;package.json&lt;/code&gt; are ignored when both are present. Otherwise, &lt;code&gt;package.json&lt;/code&gt; can still be used with ESLint configuration, but only if no other &lt;code&gt;.eslintrc.*&lt;/code&gt; files are present.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;language-options&quot; tabindex=&quot;-1&quot;&gt;Language Options&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, the way to enable language options was by using &lt;code&gt;ecmaFeatures&lt;/code&gt; in your configuration. In 2.0.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures&lt;/code&gt; property is now under a top-level &lt;code&gt;parserOptions&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;All ECMAScript 6 &lt;code&gt;ecmaFeatures&lt;/code&gt; flags have been removed in favor of a &lt;code&gt;ecmaVersion&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; that can be set to 3, 5 (default), or 6.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures.modules&lt;/code&gt; flag has been replaced by a &lt;code&gt;sourceType&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; which can be set to &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt; (default) or &lt;code&gt;&amp;quot;module&amp;quot;&lt;/code&gt; for ES6 modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;plugin-changes&quot; tabindex=&quot;-1&quot;&gt;Plugin Changes&lt;/h2&gt;
&lt;p&gt;This version of ESLint introduces several changes to plugins (see &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-plugins&quot;&gt;documentation&lt;/a&gt; for details):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;rulesConfig&lt;/code&gt; is no longer supported. We had received complaints from users who didn’t know that plugins could automatically turn on certain rules, and that functionality doesn’t make sense because ESLint rules are supposed to be off by default. As such, &lt;code&gt;rulesConfig&lt;/code&gt; will no longer set rules to be on or off by default.&lt;/li&gt;
&lt;li&gt;Plugins can now export environments. Environments are used to group global variables and parser options together, and now plugins can define custom environments.&lt;/li&gt;
&lt;li&gt;Plugins can now export shareable configs. Instead of needing to have a separate package for a shareable config, they can be bundled directly with the plugin.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;.eslintignore-changes&quot; tabindex=&quot;-1&quot;&gt;.eslintignore Changes&lt;/h2&gt;
&lt;p&gt;Prior to v2.0.0, the &lt;code&gt;.eslintignore&lt;/code&gt; file didn’t quite work the same way as &lt;code&gt;.gitignore&lt;/code&gt;, which caused some confusion for developers. In v2.0.0, we upgraded the behavior of &lt;code&gt;.eslintignore&lt;/code&gt; so that it works exactly the same as &lt;code&gt;.gitignore&lt;/code&gt;. That means the exact patterns you use in &lt;code&gt;.gitignore&lt;/code&gt; now work in &lt;code&gt;.eslintignore&lt;/code&gt; in the exact same way. For most, this should be a non-breaking change because &lt;code&gt;.eslintignore&lt;/code&gt; patterns from prior to v2.0.0 should still work.&lt;/p&gt;
&lt;h2 id=&quot;autoconfiguration&quot; tabindex=&quot;-1&quot;&gt;Autoconfiguration&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;--init&lt;/code&gt; option has been enhanced with a new ability: autoconfiguration. Now, in addition to answering a questionnaire or using a popular shareable config, you can also specify files to inspect to generate your configuration. This will create a configuration file that is based on the most common patterns found in your code.  Read more about this feature in &lt;a href=&quot;http://devnull.guru/adding-eslint-to-your-project-is-easier-than-ever/&quot;&gt;IanVS’s blog post&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;shareable-config-changes&quot; tabindex=&quot;-1&quot;&gt;Shareable Config Changes&lt;/h2&gt;
&lt;p&gt;Shareable configs now evaluate both the &lt;code&gt;parser&lt;/code&gt; and &lt;code&gt;extends&lt;/code&gt; fields as relative to the location of the config file itself. So you can use relative paths in both fields, and references to npm packages first check the &lt;code&gt;node_modules&lt;/code&gt; directory in the same directory as the shareable config.&lt;/p&gt;
&lt;h2 id=&quot;unicode-bom-support&quot; tabindex=&quot;-1&quot;&gt;Unicode BOM Support&lt;/h2&gt;
&lt;p&gt;If your files use a Unicode BOM, ESLint now properly handles parsing and evaluating your code and won’t get confused by its presence.&lt;/p&gt;
&lt;h2 id=&quot;built-in-global-variables&quot; tabindex=&quot;-1&quot;&gt;Built-In Global Variables&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, new global variables that were standardized as part of ES6 such as &lt;code&gt;Promise&lt;/code&gt;, &lt;code&gt;Map&lt;/code&gt;, &lt;code&gt;Set&lt;/code&gt;, and &lt;code&gt;Symbol&lt;/code&gt; were included in the built-in global environment. This could lead to potential issues when, for example, &lt;code&gt;no-undef&lt;/code&gt; permitted use of the &lt;code&gt;Promise&lt;/code&gt; constructor even in ES5 code where promises are unavailable. In 2.0.0, the built-in environment only includes the standard ES5 global variables, and the new ES6 global variables have been moved to the &lt;code&gt;es6&lt;/code&gt; environment.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;eslint%3Arecommended-updated&quot; tabindex=&quot;-1&quot;&gt;eslint:recommended Updated&lt;/h2&gt;
&lt;p&gt;We’ve updated the rules we recommend as a starting point. If you’re extending &lt;code&gt;eslint:recommended&lt;/code&gt;, then you should double-check your code after upgrading as there are new recommended rules (all of the added rules help identify errors, no stylistic rules were added).&lt;/p&gt;
&lt;h2 id=&quot;removing-no-arrow-condition%2C-adding-no-confusing-arrow&quot; tabindex=&quot;-1&quot;&gt;Removing &lt;code&gt;no-arrow-condition&lt;/code&gt;, Adding &lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;In looking at our rules, we discovered that &lt;code&gt;no-arrow-condition&lt;/code&gt; actually overlapped with &lt;code&gt;no-constant-condition&lt;/code&gt;, so we have removed &lt;code&gt;no-arrow-condition&lt;/code&gt; as a core rule. The &lt;code&gt;no-constant-condition&lt;/code&gt; will pick up the same errors as &lt;code&gt;no-arrow-condition&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There was an additional condition that had been part of &lt;code&gt;no-arrow-condition&lt;/code&gt; incorrectly, which checked for the use of arrow functions in conditional expressions. This functionality is now in the &lt;code&gt;no-confusing-arrow&lt;/code&gt; rule.&lt;/p&gt;
&lt;h2 id=&quot;new-formatters&quot; tabindex=&quot;-1&quot;&gt;New Formatters&lt;/h2&gt;
&lt;p&gt;We’ve added a new formatter called &lt;code&gt;visualstudio&lt;/code&gt;, which formats the results into a format that Visual Studio understands. If you use Visual Studio with ESLint, this new formatter makes the console output interactive, so you can click on a warning and be taken straight to the location in the file.&lt;/p&gt;
&lt;p&gt;There’s also a new &lt;code&gt;table&lt;/code&gt; formatter that outputs ESLint results in a table instead of free-form.&lt;/p&gt;
&lt;h2 id=&quot;calculate-and-print-config-for-file&quot; tabindex=&quot;-1&quot;&gt;Calculate and Print Config for File&lt;/h2&gt;
&lt;p&gt;You can now calculate and print out the configuration used to lint any file by using the &lt;code&gt;--print-config&lt;/code&gt; flag on the command line. This allows you to specify one file and have ESLint output the complete configuration that will be used to lint that file, including all cascading and inheritance. For instance:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ eslint --print-config myfile.js
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will output, in JSON format, the calculated configuration for &lt;code&gt;myfile.js&lt;/code&gt; without actually linting the file. This is most helpful when trying to debug configuration issues.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/id-blacklist&quot;&gt;&lt;code&gt;id-blacklist&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/keyword-spacing&quot;&gt;&lt;code&gt;keyword-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/newline-per-chained-call&quot;&gt;&lt;code&gt;newline-per-chained-call&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-confusing-arrow&quot;&gt;&lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-empty-function&quot;&gt;&lt;code&gt;no-empty-function&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-extra-label&quot;&gt;&lt;code&gt;no-extra-label&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-globals&quot;&gt;&lt;code&gt;no-implicit-globals&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-new-symbol&quot;&gt;&lt;code&gt;no-new-symbol&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-self-assign&quot;&gt;&lt;code&gt;no-self-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-unmodified-loop-condition&quot;&gt;&lt;code&gt;no-unmodified-loop-condition&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-unused-labels&quot;&gt;&lt;code&gt;no-unused-labels&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-useless-constructor&quot;&gt;&lt;code&gt;no-useless-constructor&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-whitespace-before-property&quot;&gt;&lt;code&gt;no-whitespace-before-property&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/one-var-declaration-per-line&quot;&gt;&lt;code&gt;one-var-declaration-per-line&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-rest-params&quot;&gt;&lt;code&gt;prefer-rest-params&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/template-curly-spacing&quot;&gt;&lt;code&gt;template-curly-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/yield-star-spacing&quot;&gt;&lt;code&gt;yield-star-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1c4f4d&quot;&gt;c1c4f4d&lt;/a&gt; Breaking: new &lt;code&gt;no-empty-function&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5161&quot;&gt;#5161&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e64b2c2&quot;&gt;e64b2c2&lt;/a&gt; Breaking: remove &lt;code&gt;no-empty-label&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5042&quot;&gt;#5042&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79ebbc9&quot;&gt;79ebbc9&lt;/a&gt; Breaking: update &lt;code&gt;eslint:recommended&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5103&quot;&gt;#5103&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/519f39f&quot;&gt;519f39f&lt;/a&gt; Breaking: Remove deprecated rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5032&quot;&gt;#5032&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b28a19d&quot;&gt;b28a19d&lt;/a&gt; Breaking: Plugins envs and config removal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4782&quot;&gt;#4782&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4952&quot;&gt;#4952&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e6a24e&quot;&gt;3e6a24e&lt;/a&gt; Breaking: Change &lt;code&gt;strict&lt;/code&gt; default mode to “safe” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4961&quot;&gt;#4961&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b96265&quot;&gt;5b96265&lt;/a&gt; Breaking: Update eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4953&quot;&gt;#4953&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12fe803&quot;&gt;12fe803&lt;/a&gt; Breaking: Supports Unicode BOM (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4878&quot;&gt;#4878&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19a9fbb&quot;&gt;19a9fbb&lt;/a&gt; Breaking: &lt;code&gt;space-before-blocks&lt;/code&gt; ignores after keywords (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1338&quot;&gt;#1338&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b795850&quot;&gt;b795850&lt;/a&gt; Breaking: don’t load ~/.eslintrc when using --config flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4881&quot;&gt;#4881&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2f2b66&quot;&gt;e2f2b66&lt;/a&gt; Breaking: Remove defaults from &lt;code&gt;eslint:recommended&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4809&quot;&gt;#4809&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d43f26c&quot;&gt;d43f26c&lt;/a&gt; Breaking: migrate from minimatch to node-ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2365&quot;&gt;#2365&lt;/a&gt;) (Stefan Grönke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c07ca39&quot;&gt;c07ca39&lt;/a&gt; Breaking: merges keyword spacing rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3869&quot;&gt;#3869&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: deprecate &lt;code&gt;no-arrow-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Correct links between variables and references (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4615&quot;&gt;#4615&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement parserOptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4641&quot;&gt;#4641&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove space-after-keyword newline check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4149&quot;&gt;#4149&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Treat package.json like the rest of configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4451&quot;&gt;#4451&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove autofix from eqeqeq (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4578&quot;&gt;#4578&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove ES6 global variables from builtins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4085&quot;&gt;#4085&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Simplify rule schemas (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3625&quot;&gt;#3625&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: added bower_components to default ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3550&quot;&gt;#3550&lt;/a&gt;) (Julian Laval)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to Espree 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4334&quot;&gt;#4334&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Freeze context object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4495&quot;&gt;#4495&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove warnings of readonly from &lt;code&gt;no-undef&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4504&quot;&gt;#4504&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement yield-star-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4115&quot;&gt;#4115&lt;/a&gt;) (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Breaking: Default no-magic-numbers to none. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4193&quot;&gt;#4193&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Breaking: Allow empty arrow body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4411&quot;&gt;#4411&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-rc.1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-rc.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/413247f&quot;&gt;413247f&lt;/a&gt; New: Add a --print-config flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5099&quot;&gt;#5099&lt;/a&gt;) (Christopher Crouzet)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c4de5c&quot;&gt;0c4de5c&lt;/a&gt; New: Added “table” formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4037&quot;&gt;#4037&lt;/a&gt;) (Gajus Kuizinas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1d7368&quot;&gt;e1d7368&lt;/a&gt; New: &lt;code&gt;no-extra-label&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5059&quot;&gt;#5059&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e96ffd2&quot;&gt;e96ffd2&lt;/a&gt; New: &lt;code&gt;template-curly-spacing&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5049&quot;&gt;#5049&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e791a2&quot;&gt;1e791a2&lt;/a&gt; New: &lt;code&gt;no-self-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4729&quot;&gt;#4729&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b2aedfe&quot;&gt;b2aedfe&lt;/a&gt; New: Rule to enforce newline after each call in the chain (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4538&quot;&gt;#4538&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d67bfdd&quot;&gt;d67bfdd&lt;/a&gt; New: &lt;code&gt;no-unused-labels&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5052&quot;&gt;#5052&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fea752&quot;&gt;4fea752&lt;/a&gt; New: Autoconfiguration from source inspection (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3567&quot;&gt;#3567&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c75ee4a&quot;&gt;c75ee4a&lt;/a&gt; New: Add support for configs in plugins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3659&quot;&gt;#3659&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79e8a0b&quot;&gt;79e8a0b&lt;/a&gt; New: &lt;code&gt;one-var-declaration-per-line&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1622&quot;&gt;#1622&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29392f8&quot;&gt;29392f8&lt;/a&gt; New: allow-multiline option on comma-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4967&quot;&gt;#4967&lt;/a&gt;) (Alberto Gimeno)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8470474&quot;&gt;8470474&lt;/a&gt; New: Add metadata to few test rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4494&quot;&gt;#4494&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e4841e&quot;&gt;5e4841e&lt;/a&gt; New: ‘id-blacklist’ rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3358&quot;&gt;#3358&lt;/a&gt;) (Keith Cirkel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bbf7f27&quot;&gt;bbf7f27&lt;/a&gt; New: provide config.parser via &lt;code&gt;parserName&lt;/code&gt; on RuleContext (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3670&quot;&gt;#3670&lt;/a&gt;) (Ben Mosher)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d5c9435&quot;&gt;#d5c9435&lt;/a&gt; New: ‘sort-imports’ rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3143&quot;&gt;#3143&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ceaf324&quot;&gt;ceaf324&lt;/a&gt; New: Add no-new-symbol rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4862&quot;&gt;#4862&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4665256&quot;&gt;4665256&lt;/a&gt; New: Add no-whitespace-before-property rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1086&quot;&gt;#1086&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ab564e&quot;&gt;5ab564e&lt;/a&gt; New: ‘ignoreArrayIndexes’ option for ‘no-magic-numbers’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4370&quot;&gt;#4370&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97cdb95&quot;&gt;97cdb95&lt;/a&gt; New: Add no-useless-constructor rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4785&quot;&gt;#4785&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;no-unmodified-loop-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4523&quot;&gt;#4523&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add a comment length option to the max-len rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4665&quot;&gt;#4665&lt;/a&gt;) (Ian)&lt;/li&gt;
&lt;li&gt;New: Add greasemonkey environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4715&quot;&gt;#4715&lt;/a&gt;) (silverwind)&lt;/li&gt;
&lt;li&gt;New: Add no-confusing-arrow rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;li&gt;New: Visual Studio compatible formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4708&quot;&gt;#4708&lt;/a&gt;) (rhpijnacker)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add no-implicit-globals rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4542&quot;&gt;#4542&lt;/a&gt;) (Joshua Peek)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;array-callback-return&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1128&quot;&gt;#1128&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add no-restricted-imports rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3196&quot;&gt;#3196&lt;/a&gt;) (Guy Ellis)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-rest-params&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4108&quot;&gt;#4108&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Code Path Analysis (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-rc.1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-rc.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4dad82a&quot;&gt;4dad82a&lt;/a&gt; Update: Adding shared environment for node and browser (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5196&quot;&gt;#5196&lt;/a&gt;) (Eli White)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e99924&quot;&gt;4e99924&lt;/a&gt; Update: Replace several dependencies with lodash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5012&quot;&gt;#5012&lt;/a&gt;) (Gajus Kuizinas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/efeef42&quot;&gt;efeef42&lt;/a&gt; Update: Implement auto fix for space-in-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5050&quot;&gt;#5050&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a59926&quot;&gt;0a59926&lt;/a&gt; Update: ‘implied strict mode’ ecmaFeature (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4832&quot;&gt;#4832&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b02902&quot;&gt;4b02902&lt;/a&gt; Update: Extended no-console rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5095&quot;&gt;#5095&lt;/a&gt;) (EricHenry)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3275e86&quot;&gt;3275e86&lt;/a&gt; Update: Add extra aliases to consistent-this rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4492&quot;&gt;#4492&lt;/a&gt;) (Zachary Alexander Belford)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86a3e3d&quot;&gt;86a3e3d&lt;/a&gt; Update: Remove blank lines at beginning of files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5045&quot;&gt;#5045&lt;/a&gt;) (Jared Sohn)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bcca69b&quot;&gt;bcca69b&lt;/a&gt; Update: add int32Hint option to &lt;code&gt;no-bitwise&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4873&quot;&gt;#4873&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3f2683&quot;&gt;e3f2683&lt;/a&gt; Update: config extends dependency lookup (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5023&quot;&gt;#5023&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1fad4f&quot;&gt;c1fad4f&lt;/a&gt; Update: add autofix support for spaced-comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4969&quot;&gt;#4969&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5030&quot;&gt;#5030&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/505f1a6&quot;&gt;505f1a6&lt;/a&gt; Update: Allow parser to be relative to config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4985&quot;&gt;#4985&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/654e6e1&quot;&gt;654e6e1&lt;/a&gt; Update: Check extra Boolean calls in no-extra-boolean-cast (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3650&quot;&gt;#3650&lt;/a&gt;) (Andrew Sutton)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b33c74&quot;&gt;2b33c74&lt;/a&gt; Update: valid-jsdoc to not require @return in constructors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4976&quot;&gt;#4976&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05b8cb3&quot;&gt;05b8cb3&lt;/a&gt; Update: Module overrides all ‘strict’ rule options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4936&quot;&gt;#4936&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0a9024&quot;&gt;e0a9024&lt;/a&gt; Update: Report newline between template tag and literal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4210&quot;&gt;#4210&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da3336c&quot;&gt;da3336c&lt;/a&gt; Update: Rules should get &lt;code&gt;sourceType&lt;/code&gt; from Program node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4960&quot;&gt;#4960&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2ac359&quot;&gt;a2ac359&lt;/a&gt; Update: Make jsx-quotes fixable (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4377&quot;&gt;#4377&lt;/a&gt;) (Gabriele Petronella)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/700b8bc&quot;&gt;700b8bc&lt;/a&gt; Update: Add “allow” option to allow specific operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3308&quot;&gt;#3308&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d82eeb1&quot;&gt;d82eeb1&lt;/a&gt; Update: Add describe around rule tester blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4907&quot;&gt;#4907&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2967402&quot;&gt;2967402&lt;/a&gt; Update: Add minimum value to integer values in schema (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4941&quot;&gt;#4941&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1360da&quot;&gt;b1360da&lt;/a&gt; Update: Support multiLine and singleLine options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4697&quot;&gt;#4697&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d487013&quot;&gt;d487013&lt;/a&gt; Update: Option to allow extra parens for cond assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3317&quot;&gt;#3317&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2dee27&quot;&gt;c2dee27&lt;/a&gt; Update: Add module tests to no-extra-semi (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4915&quot;&gt;#4915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a633bf&quot;&gt;5a633bf&lt;/a&gt; Update: Add &lt;code&gt;preferType&lt;/code&gt; option to &lt;code&gt;valid-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3056&quot;&gt;#3056&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/186e8f0&quot;&gt;186e8f0&lt;/a&gt; Update: Ignore camelcase in object destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3185&quot;&gt;#3185&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1569695&quot;&gt;1569695&lt;/a&gt; Update: Adds default ‘that’ for consistent-this (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4833&quot;&gt;#4833&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82d4cd9&quot;&gt;82d4cd9&lt;/a&gt; Update: Add atomtest env (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4848&quot;&gt;#4848&lt;/a&gt;) (Andres Suarez)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c9beb5&quot;&gt;9c9beb5&lt;/a&gt; Update: Add “ignore” override for operator-linebreak (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4294&quot;&gt;#4294&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c03abc&quot;&gt;9c03abc&lt;/a&gt; Update: Add “allowCall” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4011&quot;&gt;#4011&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1288ba4&quot;&gt;1288ba4&lt;/a&gt; Update: Add default limit to &lt;code&gt;complexity&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4808&quot;&gt;#4808&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5050768&quot;&gt;5050768&lt;/a&gt; Update: Ask for &lt;code&gt;commonjs&lt;/code&gt; under config init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3553&quot;&gt;#3553&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ea6b36&quot;&gt;9ea6b36&lt;/a&gt; Update: Ignore case in jsdoc tags (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4576&quot;&gt;#4576&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4931f56&quot;&gt;4931f56&lt;/a&gt; Update: optionally allow bitwise operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4742&quot;&gt;#4742&lt;/a&gt;) (Swaagie)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add “safe” mode to strict (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3306&quot;&gt;#3306&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Add cwd option for cli-engine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4472&quot;&gt;#4472&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: Allow to omit semi for one-line blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4385&quot;&gt;#4385&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: configuration for classes in space-before-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4089&quot;&gt;#4089&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for semi-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3829&quot;&gt;#3829&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: option to ignore top-level max statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4309&quot;&gt;#4309&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-use-before-define&lt;/code&gt; checks invalid initializer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4280&quot;&gt;#4280&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add class body support to &lt;code&gt;indent&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4372&quot;&gt;#4372&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add ‘method’ option to no-empty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4605&quot;&gt;#4605&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: Option to ignore constructor Fns object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4487&quot;&gt;#4487&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: add class option to &lt;code&gt;no-use-before-define&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3944&quot;&gt;#3944&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: allowAfterThis option in no-underscore-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3435&quot;&gt;#3435&lt;/a&gt;) (just-boris)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;prefer-const&lt;/code&gt; begins to cover separating init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4474&quot;&gt;#4474&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b12995&quot;&gt;7b12995&lt;/a&gt; Fix: &lt;code&gt;key-spacing&lt;/code&gt; not enforcing no-space in minimum mode (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5008&quot;&gt;#5008&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-rc.1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-rc.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b46c893&quot;&gt;b46c893&lt;/a&gt; Fix: Config file relative paths (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5164&quot;&gt;#5164&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5160&quot;&gt;#5160&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aa5b2ac&quot;&gt;aa5b2ac&lt;/a&gt; Fix: no-whitespace-before-property fixes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5167&quot;&gt;#5167&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e07fdd4&quot;&gt;e07fdd4&lt;/a&gt; Fix: code path analysis and labels (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5171&quot;&gt;#5171&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2417bb2&quot;&gt;2417bb2&lt;/a&gt; Fix: &lt;code&gt;no-unmodified-loop-condition&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5166&quot;&gt;#5166&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fae1884&quot;&gt;fae1884&lt;/a&gt; Fix: Allow same-line comments in padded-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5055&quot;&gt;#5055&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a24d8ad&quot;&gt;a24d8ad&lt;/a&gt; Fix: Improve autoconfig logging (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5119&quot;&gt;#5119&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a03919a&quot;&gt;a03919a&lt;/a&gt; Fix: &lt;code&gt;no-unexpected-multiline&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5148&quot;&gt;#5148&lt;/a&gt;) (Feross Aboukhadijeh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53a6eb3&quot;&gt;53a6eb3&lt;/a&gt; Fix: Handle singular case in rule-tester error message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5141&quot;&gt;#5141&lt;/a&gt;) (Bryan Smith)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/973c499&quot;&gt;973c499&lt;/a&gt; Fix: &lt;code&gt;sort-imports&lt;/code&gt; crash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5130&quot;&gt;#5130&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c83b48c&quot;&gt;c83b48c&lt;/a&gt; Fix: find ignore file only in cwd (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5087&quot;&gt;#5087&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c706eb9&quot;&gt;c706eb9&lt;/a&gt; Fix: reduced &lt;code&gt;no-loop-func&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5044&quot;&gt;#5044&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/361377f&quot;&gt;361377f&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; false positive reading before writing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5074&quot;&gt;#5074&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a327a06&quot;&gt;a327a06&lt;/a&gt; Fix: Indent rule for allman brace style scenario (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5064&quot;&gt;#5064&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afdff6d&quot;&gt;afdff6d&lt;/a&gt; Fix: &lt;code&gt;no-extra-bind&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5058&quot;&gt;#5058&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0f21a0&quot;&gt;b0f21a0&lt;/a&gt; Fix: &lt;code&gt;keyword-spacing&lt;/code&gt; false positive in template strings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5043&quot;&gt;#5043&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53fa5d1&quot;&gt;53fa5d1&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; false positive in a loop condition (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5024&quot;&gt;#5024&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8fbaa0&quot;&gt;b8fbaa0&lt;/a&gt; Fix: multiple message in TAP formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4975&quot;&gt;#4975&lt;/a&gt;) (Simon Degraeve)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/990f8da&quot;&gt;990f8da&lt;/a&gt; Fix: &lt;code&gt;getNodeByRangeIndex&lt;/code&gt; performance issue (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4989&quot;&gt;#4989&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5cd5429&quot;&gt;5cd5429&lt;/a&gt; Fix: function expression doc in call expression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4964&quot;&gt;#4964&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4173baa&quot;&gt;4173baa&lt;/a&gt; Fix: &lt;code&gt;no-dupe-class-members&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4981&quot;&gt;#4981&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee1014d&quot;&gt;ee1014d&lt;/a&gt; Fix: Incorrect error location for object-curly-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4957&quot;&gt;#4957&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b52ed17&quot;&gt;b52ed17&lt;/a&gt; Fix: Incorrect error location for space-in-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4956&quot;&gt;#4956&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c1bafb&quot;&gt;9c1bafb&lt;/a&gt; Fix: Columns of parse errors are off by 1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4896&quot;&gt;#4896&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86e6e57&quot;&gt;86e6e57&lt;/a&gt; Fix: Incorrect error at EOF for no-multiple-empty-lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4917&quot;&gt;#4917&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f058f3&quot;&gt;7f058f3&lt;/a&gt; Fix: Incorrect location for padded-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4913&quot;&gt;#4913&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3de8f7&quot;&gt;b3de8f7&lt;/a&gt; Fix: Do not show ignore messages for default ignored files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4931&quot;&gt;#4931&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f469b4&quot;&gt;0f469b4&lt;/a&gt; Fix: JSDoc for function expression on object property (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4900&quot;&gt;#4900&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4c4139&quot;&gt;c4c4139&lt;/a&gt; Fix: global-require no longer warns if require is shadowed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4812&quot;&gt;#4812&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8cfd56&quot;&gt;a8cfd56&lt;/a&gt; Fix: remove duplicate of eslint-config-eslint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4909&quot;&gt;#4909&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c275b41&quot;&gt;c275b41&lt;/a&gt; Fix: no-extra-parens ExpressionStatement restricted prods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4902&quot;&gt;#4902&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5e06f8&quot;&gt;e5e06f8&lt;/a&gt; Fix: Jsdoc comment for multi-line function expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4889&quot;&gt;#4889&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c9be60&quot;&gt;7c9be60&lt;/a&gt; Fix: Fix path errors in windows (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4888&quot;&gt;#4888&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1840e7&quot;&gt;a1840e7&lt;/a&gt; Fix: gray text was invisible on Solarized Dark theme (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4886&quot;&gt;#4886&lt;/a&gt;) (Jack Leigh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/688f277&quot;&gt;688f277&lt;/a&gt; Fix: Set proper exit code for Node &amp;gt; 0.10 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4691&quot;&gt;#4691&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58715e9&quot;&gt;58715e9&lt;/a&gt; Fix: Use single quotes in context.report messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4845&quot;&gt;#4845&lt;/a&gt;) (Joe Lencioni)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b7586b&quot;&gt;5b7586b&lt;/a&gt; Fix: do not require a @return tag for @interface (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4860&quot;&gt;#4860&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3e8179&quot;&gt;d3e8179&lt;/a&gt; Fix: env is rewritten by modules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4814&quot;&gt;#4814&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/315f272&quot;&gt;315f272&lt;/a&gt; Fix: Change max-warnings type to Int (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4660&quot;&gt;#4660&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f500d7d&quot;&gt;f500d7d&lt;/a&gt; Fix: allow extending @scope/eslint/file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4800&quot;&gt;#4800&lt;/a&gt;) (André Cruz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9bcbaf&quot;&gt;b9bcbaf&lt;/a&gt; Fix: Bug in no-extra-bind (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4806&quot;&gt;#4806&lt;/a&gt;) (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acdda24&quot;&gt;acdda24&lt;/a&gt; Fix: ignore argument parens in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4658&quot;&gt;#4658&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-invalid-this&lt;/code&gt; allows this in static method (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4669&quot;&gt;#4669&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Add source property for fatal errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3325&quot;&gt;#3325&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: always-multiline for comma-dangle import (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4704&quot;&gt;#4704&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Apply environment configs last (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3915&quot;&gt;#3915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Backtick behavior in quotes rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3090&quot;&gt;#3090&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Check 1tbs non-block else (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4692&quot;&gt;#4692&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Comma first issue in &lt;code&gt;indent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4739&quot;&gt;#4739&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3456&quot;&gt;#3456&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Empty schemas forbid any options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4789&quot;&gt;#4789&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: ensure &lt;code&gt;ConfigOps.merge&lt;/code&gt; do a deep copy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4682&quot;&gt;#4682&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Export class syntax for &lt;code&gt;require-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4667&quot;&gt;#4667&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Handle getters and setters in key-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4792&quot;&gt;#4792&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-constant-condition false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4737&quot;&gt;#4737&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: ObjectRestSpread throws error in key-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4763&quot;&gt;#4763&lt;/a&gt;) (Ziad El Khoury Hanna)&lt;/li&gt;
&lt;li&gt;Fix: Remove &lt;code&gt;isMarkedAsUsed&lt;/code&gt; function name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4783&quot;&gt;#4783&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Remove path analysis from debug log (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4631&quot;&gt;#4631&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Fix: RuleTester to show parsing errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4779&quot;&gt;#4779&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Set null to property ruleId when fatal is true (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4722&quot;&gt;#4722&lt;/a&gt;) (Sébastien Règne)&lt;/li&gt;
&lt;li&gt;Fix: small typos in code examples (Plusb Preco)&lt;/li&gt;
&lt;li&gt;Fix: support arrow functions in no-return-assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4743&quot;&gt;#4743&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Update rule tests for parser options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4673&quot;&gt;#4673&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: max-len rule overestimates the width of some tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4661&quot;&gt;#4661&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;Fix: Use oneValuePerFlag for --ignore-pattern option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;Fix: Handle forbidden LineTerminators in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4229&quot;&gt;#4229&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Check YieldExpression argument in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4608&quot;&gt;#4608&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Do not cache &lt;code&gt;package.json&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4611&quot;&gt;#4611&lt;/a&gt;) (Spain)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;consistent-return&lt;/code&gt; checks the last (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3373&quot;&gt;#3373&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unreachable&lt;/code&gt; with the code path (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3939&quot;&gt;#3939&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-this-before-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-fallthrough&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;constructor-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Adding options unit tests for --ignore-pattern (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-eval&lt;/code&gt; come to catch indirect eval (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4399&quot;&gt;#4399&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4441&quot;&gt;#4441&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/cc3a66b&quot;&gt;cc3a66b&lt;/a&gt; Docs: Issue message when more info is needed (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2bc40fa&quot;&gt;2bc40fa&lt;/a&gt; Docs: Simplify hierarchy of headings in rule pages (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1666254&quot;&gt;1666254&lt;/a&gt; Docs: Add note about only-whitespace rule for &lt;code&gt;--fix&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4774&quot;&gt;#4774&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2fa09d2&quot;&gt;2fa09d2&lt;/a&gt; Docs: Add &lt;code&gt;quotes&lt;/code&gt; to related section of &lt;code&gt;prefer-template&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5192&quot;&gt;#5192&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-rc.1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-rc.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/718dc68&quot;&gt;718dc68&lt;/a&gt; Docs: Remove periods in rules’ README for consistency. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7a47085&quot;&gt;7a47085&lt;/a&gt; Docs: Correct &lt;code&gt;arrow-spacing&lt;/code&gt; overview. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a4cde1b&quot;&gt;a4cde1b&lt;/a&gt; Docs: Clarify global-require inside try/catch (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3834&quot;&gt;#3834&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd07925&quot;&gt;fd07925&lt;/a&gt; Docs: Clarify docs for api.verify (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5101&quot;&gt;#5101&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5104&quot;&gt;#5104&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e525923&quot;&gt;e525923&lt;/a&gt; Docs: Correct obvious inconsistencies in rules h2 elements (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9675b5e&quot;&gt;9675b5e&lt;/a&gt; Docs: &lt;code&gt;avoid-escape&lt;/code&gt; does not allow backticks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5147&quot;&gt;#5147&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74360d6&quot;&gt;74360d6&lt;/a&gt; Docs: Note no-empty applies to empty block statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5105&quot;&gt;#5105&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02c83df&quot;&gt;02c83df&lt;/a&gt; Docs: Update docs/rules/no-plusplus.md (Sheldon Griffin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a24240&quot;&gt;3a24240&lt;/a&gt; Docs: Fix jsdoc param names to match function param names (Thanos Lefteris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d79746&quot;&gt;1d79746&lt;/a&gt; Docs: Replace ecmaFeatures setting with link to config page (Thanos Lefteris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/757651e&quot;&gt;757651e&lt;/a&gt; Docs: Remove reference to rules enabled by default (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5100&quot;&gt;#5100&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d87f5d&quot;&gt;0d87f5d&lt;/a&gt; Docs: Clarify eslint-disable comments only affect rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5005&quot;&gt;#5005&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a227360&quot;&gt;a227360&lt;/a&gt; Docs: Replace joyent org with nodejs (Thanos Lefteris)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/889b942&quot;&gt;889b942&lt;/a&gt; Revert “Docs: Update readme for legend describing rules icons (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4355&quot;&gt;#4355&lt;/a&gt;)” (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/385d399&quot;&gt;385d399&lt;/a&gt; Docs: Update readme for legend describing rules icons (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fa834f&quot;&gt;3fa834f&lt;/a&gt; Docs: Fix formatter links (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5006&quot;&gt;#5006&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54b1bc8&quot;&gt;54b1bc8&lt;/a&gt; Docs: Fix link in &lt;a href=&quot;http://strict.md/&quot;&gt;strict.md&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5026&quot;&gt;#5026&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/69f149d&quot;&gt;69f149d&lt;/a&gt; Docs: language tweaks (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ac2e01&quot;&gt;6ac2e01&lt;/a&gt; Docs: Fix description of exported comment (Mickael Jeanroy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba11c1b&quot;&gt;ba11c1b&lt;/a&gt; Docs: Add Algolia as sponsor to README (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a456077&quot;&gt;a456077&lt;/a&gt; Docs: newline-after-var doesn’t allow invalid options. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82fbe09&quot;&gt;82fbe09&lt;/a&gt; Docs: Small semantic issue in documentation example (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4937&quot;&gt;#4937&lt;/a&gt;) (Marcelo Zarate)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13a4e30&quot;&gt;13a4e30&lt;/a&gt; Docs: Formatting inconsistencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4912&quot;&gt;#4912&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d626a3&quot;&gt;2d626a3&lt;/a&gt; Docs: Fix typo in changelog (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6390862&quot;&gt;6390862&lt;/a&gt; Docs: Fix missing footnote (Yoshiya Hinosawa)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc9f528&quot;&gt;fc9f528&lt;/a&gt; Docs: Modify unnecessary flag docs in quote-props (Matija Marohnić)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b3c01e&quot;&gt;0b3c01e&lt;/a&gt; Docs: Specify default for func-style (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4834&quot;&gt;#4834&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/008ea39&quot;&gt;008ea39&lt;/a&gt; Docs: Document default for operator assignment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4835&quot;&gt;#4835&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b566f56&quot;&gt;b566f56&lt;/a&gt; Docs: no-new-func typo (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7b28b7&quot;&gt;f7b28b7&lt;/a&gt; Docs: clarify &lt;code&gt;requireReturn&lt;/code&gt; option for valid-jsdoc rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4859&quot;&gt;#4859&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29516f1&quot;&gt;29516f1&lt;/a&gt; Docs: fix migration guide for no-arrow-condition rule (Peter Newnham)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ef7549&quot;&gt;2ef7549&lt;/a&gt; Docs: clarify remedy to some prefer-const errors (Turadg Aleahmad)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd72aba&quot;&gt;fd72aba&lt;/a&gt; Docs: Example fix for &lt;code&gt;no-extra-parens&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3527&quot;&gt;#3527&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/246a6d2&quot;&gt;246a6d2&lt;/a&gt; Docs: Documentation fix (Andres Kalle)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add license header to Working with Rules guide (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add section on file extensions to user-guide/configuring (adam)&lt;/li&gt;
&lt;li&gt;Docs: Escape underscores in no-path-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: fix typos, suggests (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: RuleTester doesn’t require any tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4681&quot;&gt;#4681&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in generator-star (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4756&quot;&gt;#4756&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-useless-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typos in space-before-keywords and space-unary-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4771&quot;&gt;#4771&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: writing mistake (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: no-extra-semi no longer refers to deprecated rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4598&quot;&gt;#4598&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Docs: Update docs/rules/no-plusplus.md (Xiangyun Chi)&lt;/li&gt;
&lt;li&gt;Docs: Add Code of Conduct (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3095&quot;&gt;#3095&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0c5cf7&quot;&gt;e0c5cf7&lt;/a&gt; Upgrade: Espree to 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5018&quot;&gt;#5018&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7457a4e&quot;&gt;7457a4e&lt;/a&gt; Upgrade: glob to 6.x (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4991&quot;&gt;#4991&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b632f8&quot;&gt;7b632f8&lt;/a&gt; Upgrade: Globals to ^8.18.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4728&quot;&gt;#4728&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c97201&quot;&gt;7c97201&lt;/a&gt; Upgrade: doctrine version to 1.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4854&quot;&gt;#4854&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/871f534&quot;&gt;871f534&lt;/a&gt; Upgrade: Optionator version to 0.8.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4851&quot;&gt;#4851&lt;/a&gt;) (Eric Johnson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: beefy to ^2.0.0, fixes installation errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4760&quot;&gt;#4760&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Handlebars to &amp;gt;= 4.0.5 for security reasons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4642&quot;&gt;#4642&lt;/a&gt;) (Jacques Favreau)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-rc.1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-rc.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6eeaa3f&quot;&gt;6eeaa3f&lt;/a&gt; Build: Remove pending tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5126&quot;&gt;#5126&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97ac91c&quot;&gt;97ac91c&lt;/a&gt; Build: Increment eslint-config-eslint (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff2551d&quot;&gt;ff2551d&lt;/a&gt; Build: Improve &lt;code&gt;npm run perf&lt;/code&gt; command (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5028&quot;&gt;#5028&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3f4bdd&quot;&gt;d3f4bdd&lt;/a&gt; Build: Cleanup for code coverage (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4983&quot;&gt;#4983&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ac1dac&quot;&gt;8ac1dac&lt;/a&gt; Build: Update markdownlint dependency to 0.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4988&quot;&gt;#4988&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fc80e9&quot;&gt;1fc80e9&lt;/a&gt; Build: Increment eslint-config-eslint (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebd01b7&quot;&gt;ebd01b7&lt;/a&gt; Build: Fix version number on release (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4921&quot;&gt;#4921&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c70d84&quot;&gt;6c70d84&lt;/a&gt; Build: Fix prerelease script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4919&quot;&gt;#4919&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3906481&quot;&gt;3906481&lt;/a&gt; Build: Add AppVeyor CI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4894&quot;&gt;#4894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/407f329&quot;&gt;407f329&lt;/a&gt; Build: Fix prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Build-Related (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Consume no-underscore-dangle allowAfterThis option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4599&quot;&gt;#4599&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.0.0-rc.1 released</title>
    <link href="https://eslint.org/blog/2016/02/eslint-v2.0.0-rc.1-released/"/>
    <updated>2016-02-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/02/eslint-v2.0.0-rc.1-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by &lt;a href=&quot;https://github.com/eslint/eslint/issues/new?body=I%27m%20using%20ESLint%20v2.0.0-rc.1%20and%20I%20(have%20some%20feedback%7Cfound%20a%20bug).%20I%20used%20this%20code%0A%0A(include%20full%20code)%0A%0Aand%20this%20configuration%0A%0A(include%20full%20configuration)%0A%0AAnd%20got%20this%20output%3A%0A%0A(include%20full%20ESLint%20output)%0A%0AI%20expected%20this%20instead%3A%0A%0A(describe%20what%20you%20thought%20should%20happen%20or%20what%20you%27d%20like%20to%20happen)&quot;&gt;creating issues&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@2.0.0-rc.1 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h3 id=&quot;code-path-analysis&quot; tabindex=&quot;-1&quot;&gt;Code Path Analysis&lt;/h3&gt;
&lt;p&gt;ESLint v2.0.0 formally introduces &lt;a href=&quot;https://eslint.org/docs/2.0.0/developer-guide/code-path-analysis.html&quot;&gt;code path analysis&lt;/a&gt;. While we’ve tried to make best guesses at how execution flowed through code, there were several instances where we just couldn’t get everything correct. For instance, trying to guarantee that every code path contained a &lt;code&gt;return&lt;/code&gt; statement. Fully implementing code path analysis means that we (and you, through custom rules) can now correctly understand how execution is proceeding through code. Several rules have been updated to make use of code path analysis, fixing some longtime bugs in existing rules. As a result, ESLint is even better at picking up certain types of errors.&lt;/p&gt;
&lt;h2 id=&quot;configuration-cascading-changes&quot; tabindex=&quot;-1&quot;&gt;Configuration Cascading Changes&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, if a directory contained both an &lt;code&gt;.eslintrc&lt;/code&gt; file and a &lt;code&gt;package.json&lt;/code&gt; file with ESLint configuration information, the settings from the two files would be merged together. In 2.0.0, only the settings from the &lt;code&gt;.eslintrc.*&lt;/code&gt; file are used and the ones in &lt;code&gt;package.json&lt;/code&gt; are ignored when both are present. Otherwise, &lt;code&gt;package.json&lt;/code&gt; can still be used with ESLint configuration, but only if no other &lt;code&gt;.eslintrc.*&lt;/code&gt; files are present.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;language-options&quot; tabindex=&quot;-1&quot;&gt;Language Options&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, the way to enable language options was by using &lt;code&gt;ecmaFeatures&lt;/code&gt; in your configuration. In 2.0.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures&lt;/code&gt; property is now under a top-level &lt;code&gt;parserOptions&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;All ECMAScript 6 &lt;code&gt;ecmaFeatures&lt;/code&gt; flags have been removed in favor of a &lt;code&gt;ecmaVersion&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; that can be set to 3, 5 (default), or 6.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures.modules&lt;/code&gt; flag has been replaced by a &lt;code&gt;sourceType&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; which can be set to &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt; (default) or &lt;code&gt;&amp;quot;module&amp;quot;&lt;/code&gt; for ES6 modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;plugin-changes&quot; tabindex=&quot;-1&quot;&gt;Plugin Changes&lt;/h2&gt;
&lt;p&gt;This version of ESLint introduces several changes to plugins (see &lt;a href=&quot;https://eslint.org/docs/2.0.0/developer-guide/working-with-plugins&quot;&gt;documentation&lt;/a&gt; for details):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;rulesConfig&lt;/code&gt; is no longer supported. We had received complaints from users who didn’t know that plugins could automatically turn on certain rules, and that functionality doesn’t make sense because ESLint rules are supposed to be off by default. As such, &lt;code&gt;rulesConfig&lt;/code&gt; will no longer set rules to be on or off by default.&lt;/li&gt;
&lt;li&gt;Plugins can now export environments. Environments are used to group global variables and parser options together, and now plugins can define custom environments.&lt;/li&gt;
&lt;li&gt;Plugins can now export shareable configs. Instead of needing to have a separate package for a shareable config, they can be bundled directly with the plugin.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;autoconfiguration&quot; tabindex=&quot;-1&quot;&gt;Autoconfiguration&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;--init&lt;/code&gt; option has been enhanced with a new ability: autoconfiguration. Now, in addition to answering a questionnaire or using a popular shareable config, you can also specify files to inspect to generate your configuration. This will create a configuration file that is based on the most common patterns found in your code.  Read more about this feature in &lt;a href=&quot;http://devnull.guru/adding-eslint-to-your-project-is-easier-than-ever/&quot;&gt;IanVS’s blog post&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;shareable-config-changes&quot; tabindex=&quot;-1&quot;&gt;Shareable Config Changes&lt;/h2&gt;
&lt;p&gt;Shareable configs now evaluate both the &lt;code&gt;parser&lt;/code&gt; and &lt;code&gt;extends&lt;/code&gt; fields as relative to the location of the config file itself. So you can use relative paths in both fields, and references to npm packages first check the &lt;code&gt;node_modules&lt;/code&gt; directory in the same directory as the shareable config.&lt;/p&gt;
&lt;h2 id=&quot;unicode-bom-support&quot; tabindex=&quot;-1&quot;&gt;Unicode BOM Support&lt;/h2&gt;
&lt;p&gt;If your files use a Unicode BOM, ESLint now properly handles parsing and evaluating your code and won’t get confused by its presence.&lt;/p&gt;
&lt;h2 id=&quot;built-in-global-variables&quot; tabindex=&quot;-1&quot;&gt;Built-In Global Variables&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, new global variables that were standardized as part of ES6 such as &lt;code&gt;Promise&lt;/code&gt;, &lt;code&gt;Map&lt;/code&gt;, &lt;code&gt;Set&lt;/code&gt;, and &lt;code&gt;Symbol&lt;/code&gt; were included in the built-in global environment. This could lead to potential issues when, for example, &lt;code&gt;no-undef&lt;/code&gt; permitted use of the &lt;code&gt;Promise&lt;/code&gt; constructor even in ES5 code where promises are unavailable. In 2.0.0, the built-in environment only includes the standard ES5 global variables, and the new ES6 global variables have been moved to the &lt;code&gt;es6&lt;/code&gt; environment.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;eslint%3Arecommended-updated&quot; tabindex=&quot;-1&quot;&gt;eslint:recommended Updated&lt;/h2&gt;
&lt;p&gt;We’ve updated the rules we recommend as a starting point. If you’re extending &lt;code&gt;eslint:recommended&lt;/code&gt;, then you should double-check your code after upgrading as there are new recommended rules (all of the added rules help identify errors, no stylistic rules were added).&lt;/p&gt;
&lt;h2 id=&quot;removing-no-arrow-condition%2C-adding-no-confusing-arrow&quot; tabindex=&quot;-1&quot;&gt;Removing &lt;code&gt;no-arrow-condition&lt;/code&gt;, Adding &lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;In looking at our rules, we discovered that &lt;code&gt;no-arrow-condition&lt;/code&gt; actually overlapped with &lt;code&gt;no-constant-condition&lt;/code&gt;, so we have removed &lt;code&gt;no-arrow-condition&lt;/code&gt; as a core rule. The &lt;code&gt;no-constant-condition&lt;/code&gt; will pick up the same errors as &lt;code&gt;no-arrow-condition&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There was an additional condition that had been part of &lt;code&gt;no-arrow-condition&lt;/code&gt; incorrectly, which checked for the use of arrow functions in conditional expressions. This functionality is now in the &lt;code&gt;no-confusing-arrow&lt;/code&gt; rule.&lt;/p&gt;
&lt;h2 id=&quot;new-formatters&quot; tabindex=&quot;-1&quot;&gt;New Formatters&lt;/h2&gt;
&lt;p&gt;We’ve added a new formatter called &lt;code&gt;visualstudio&lt;/code&gt;, which formats the results into a format that Visual Studio understands. If you use Visual Studio with ESLint, this new formatter makes the console output interactive, so you can click on a warning and be taken straight to the location in the file.&lt;/p&gt;
&lt;p&gt;There’s also a new &lt;code&gt;table&lt;/code&gt; formatter that outputs ESLint results in a table instead of free-form.&lt;/p&gt;
&lt;h2 id=&quot;calculate-and-print-config-for-file&quot; tabindex=&quot;-1&quot;&gt;Calculate and Print Config for File&lt;/h2&gt;
&lt;p&gt;You can now calculate and print out the configuration used to lint any file by using the &lt;code&gt;--print-config&lt;/code&gt; flag on the command line. This allows you to specify one file and have ESLint output the complete configuration that will be used to lint that file, including all cascading and inheritance. For instance:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ eslint --print-config myfile.js
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will output, in JSON format, the calculated configuration for &lt;code&gt;myfile.js&lt;/code&gt; without actually linting the file. This is most helpful when trying to debug configuration issues.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/id-blacklist&quot;&gt;&lt;code&gt;id-blacklist&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/keyword-spacing&quot;&gt;&lt;code&gt;keyword-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/newline-per-chained-call&quot;&gt;&lt;code&gt;newline-per-chained-call&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-confusing-arrow&quot;&gt;&lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-extra-label&quot;&gt;&lt;code&gt;no-extra-label&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-implicit-globals&quot;&gt;&lt;code&gt;no-implicit-globals&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-new-symbol&quot;&gt;&lt;code&gt;no-new-symbol&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-self-assign&quot;&gt;&lt;code&gt;no-self-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-unmodified-loop-condition&quot;&gt;&lt;code&gt;no-unmodified-loop-condition&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-unused-labels&quot;&gt;&lt;code&gt;no-unused-labels&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-useless-constructor&quot;&gt;&lt;code&gt;no-useless-constructor&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-whitespace-before-property&quot;&gt;&lt;code&gt;no-whitespace-before-property&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/one-var-declaration-per-line&quot;&gt;&lt;code&gt;one-var-declaration-per-line&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/prefer-rest-params&quot;&gt;&lt;code&gt;prefer-rest-params&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/template-curly-spacing&quot;&gt;&lt;code&gt;template-curly-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/yield-star-spacing&quot;&gt;&lt;code&gt;yield-star-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e64b2c2&quot;&gt;e64b2c2&lt;/a&gt; Breaking: remove &lt;code&gt;no-empty-label&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5042&quot;&gt;#5042&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79ebbc9&quot;&gt;79ebbc9&lt;/a&gt; Breaking: update &lt;code&gt;eslint:recommended&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5103&quot;&gt;#5103&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/519f39f&quot;&gt;519f39f&lt;/a&gt; Breaking: Remove deprecated rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5032&quot;&gt;#5032&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b28a19d&quot;&gt;b28a19d&lt;/a&gt; Breaking: Plugins envs and config removal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4782&quot;&gt;#4782&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4952&quot;&gt;#4952&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e6a24e&quot;&gt;3e6a24e&lt;/a&gt; Breaking: Change &lt;code&gt;strict&lt;/code&gt; default mode to “safe” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4961&quot;&gt;#4961&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b96265&quot;&gt;5b96265&lt;/a&gt; Breaking: Update eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4953&quot;&gt;#4953&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12fe803&quot;&gt;12fe803&lt;/a&gt; Breaking: Supports Unicode BOM (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4878&quot;&gt;#4878&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19a9fbb&quot;&gt;19a9fbb&lt;/a&gt; Breaking: &lt;code&gt;space-before-blocks&lt;/code&gt; ignores after keywords (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1338&quot;&gt;#1338&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b795850&quot;&gt;b795850&lt;/a&gt; Breaking: don’t load ~/.eslintrc when using --config flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4881&quot;&gt;#4881&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2f2b66&quot;&gt;e2f2b66&lt;/a&gt; Breaking: Remove defaults from &lt;code&gt;eslint:recommended&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4809&quot;&gt;#4809&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d43f26c&quot;&gt;d43f26c&lt;/a&gt; Breaking: migrate from minimatch to node-ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2365&quot;&gt;#2365&lt;/a&gt;) (Stefan Grönke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c07ca39&quot;&gt;c07ca39&lt;/a&gt; Breaking: merges keyword spacing rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3869&quot;&gt;#3869&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: deprecate &lt;code&gt;no-arrow-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Correct links between variables and references (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4615&quot;&gt;#4615&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement parserOptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4641&quot;&gt;#4641&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove space-after-keyword newline check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4149&quot;&gt;#4149&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Treat package.json like the rest of configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4451&quot;&gt;#4451&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove autofix from eqeqeq (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4578&quot;&gt;#4578&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove ES6 global variables from builtins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4085&quot;&gt;#4085&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Simplify rule schemas (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3625&quot;&gt;#3625&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: added bower_components to default ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3550&quot;&gt;#3550&lt;/a&gt;) (Julian Laval)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to Espree 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4334&quot;&gt;#4334&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Freeze context object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4495&quot;&gt;#4495&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove warnings of readonly from &lt;code&gt;no-undef&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4504&quot;&gt;#4504&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement yield-star-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4115&quot;&gt;#4115&lt;/a&gt;) (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Breaking: Default no-magic-numbers to none. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4193&quot;&gt;#4193&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Breaking: Allow empty arrow body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4411&quot;&gt;#4411&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-rc.1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-rc.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/413247f&quot;&gt;413247f&lt;/a&gt; New: Add a --print-config flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5099&quot;&gt;#5099&lt;/a&gt;) (Christopher Crouzet)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0c4de5c&quot;&gt;0c4de5c&lt;/a&gt; New: Added “table” formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4037&quot;&gt;#4037&lt;/a&gt;) (Gajus Kuizinas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1d7368&quot;&gt;e1d7368&lt;/a&gt; New: &lt;code&gt;no-extra-label&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5059&quot;&gt;#5059&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e96ffd2&quot;&gt;e96ffd2&lt;/a&gt; New: &lt;code&gt;template-curly-spacing&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5049&quot;&gt;#5049&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e791a2&quot;&gt;1e791a2&lt;/a&gt; New: &lt;code&gt;no-self-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4729&quot;&gt;#4729&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b2aedfe&quot;&gt;b2aedfe&lt;/a&gt; New: Rule to enforce newline after each call in the chain (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4538&quot;&gt;#4538&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d67bfdd&quot;&gt;d67bfdd&lt;/a&gt; New: &lt;code&gt;no-unused-labels&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5052&quot;&gt;#5052&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fea752&quot;&gt;4fea752&lt;/a&gt; New: Autoconfiguration from source inspection (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3567&quot;&gt;#3567&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c75ee4a&quot;&gt;c75ee4a&lt;/a&gt; New: Add support for configs in plugins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3659&quot;&gt;#3659&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79e8a0b&quot;&gt;79e8a0b&lt;/a&gt; New: &lt;code&gt;one-var-declaration-per-line&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1622&quot;&gt;#1622&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29392f8&quot;&gt;29392f8&lt;/a&gt; New: allow-multiline option on comma-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4967&quot;&gt;#4967&lt;/a&gt;) (Alberto Gimeno)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8470474&quot;&gt;8470474&lt;/a&gt; New: Add metadata to few test rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4494&quot;&gt;#4494&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e4841e&quot;&gt;5e4841e&lt;/a&gt; New: ‘id-blacklist’ rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3358&quot;&gt;#3358&lt;/a&gt;) (Keith Cirkel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bbf7f27&quot;&gt;bbf7f27&lt;/a&gt; New: provide config.parser via &lt;code&gt;parserName&lt;/code&gt; on RuleContext (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3670&quot;&gt;#3670&lt;/a&gt;) (Ben Mosher)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d5c9435&quot;&gt;#d5c9435&lt;/a&gt; New: ‘sort-imports’ rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3143&quot;&gt;#3143&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ceaf324&quot;&gt;ceaf324&lt;/a&gt; New: Add no-new-symbol rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4862&quot;&gt;#4862&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4665256&quot;&gt;4665256&lt;/a&gt; New: Add no-whitespace-before-property rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1086&quot;&gt;#1086&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ab564e&quot;&gt;5ab564e&lt;/a&gt; New: ‘ignoreArrayIndexes’ option for ‘no-magic-numbers’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4370&quot;&gt;#4370&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97cdb95&quot;&gt;97cdb95&lt;/a&gt; New: Add no-useless-constructor rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4785&quot;&gt;#4785&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;no-unmodified-loop-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4523&quot;&gt;#4523&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add a comment length option to the max-len rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4665&quot;&gt;#4665&lt;/a&gt;) (Ian)&lt;/li&gt;
&lt;li&gt;New: Add greasemonkey environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4715&quot;&gt;#4715&lt;/a&gt;) (silverwind)&lt;/li&gt;
&lt;li&gt;New: Add no-confusing-arrow rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;li&gt;New: Visual Studio compatible formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4708&quot;&gt;#4708&lt;/a&gt;) (rhpijnacker)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add no-implicit-globals rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4542&quot;&gt;#4542&lt;/a&gt;) (Joshua Peek)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;array-callback-return&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1128&quot;&gt;#1128&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add no-restricted-imports rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3196&quot;&gt;#3196&lt;/a&gt;) (Guy Ellis)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-rest-params&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4108&quot;&gt;#4108&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Code Path Analysis (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-rc.1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-rc.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4dad82a&quot;&gt;4dad82a&lt;/a&gt; Update: Adding shared environment for node and browser (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/5196&quot;&gt;#5196&lt;/a&gt;) (Eli White)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4e99924&quot;&gt;4e99924&lt;/a&gt; Update: Replace several dependencies with lodash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5012&quot;&gt;#5012&lt;/a&gt;) (Gajus Kuizinas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/efeef42&quot;&gt;efeef42&lt;/a&gt; Update: Implement auto fix for space-in-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5050&quot;&gt;#5050&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0a59926&quot;&gt;0a59926&lt;/a&gt; Update: ‘implied strict mode’ ecmaFeature (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4832&quot;&gt;#4832&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b02902&quot;&gt;4b02902&lt;/a&gt; Update: Extended no-console rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5095&quot;&gt;#5095&lt;/a&gt;) (EricHenry)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3275e86&quot;&gt;3275e86&lt;/a&gt; Update: Add extra aliases to consistent-this rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4492&quot;&gt;#4492&lt;/a&gt;) (Zachary Alexander Belford)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86a3e3d&quot;&gt;86a3e3d&lt;/a&gt; Update: Remove blank lines at beginning of files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5045&quot;&gt;#5045&lt;/a&gt;) (Jared Sohn)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bcca69b&quot;&gt;bcca69b&lt;/a&gt; Update: add int32Hint option to &lt;code&gt;no-bitwise&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4873&quot;&gt;#4873&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3f2683&quot;&gt;e3f2683&lt;/a&gt; Update: config extends dependency lookup (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5023&quot;&gt;#5023&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1fad4f&quot;&gt;c1fad4f&lt;/a&gt; Update: add autofix support for spaced-comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4969&quot;&gt;#4969&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5030&quot;&gt;#5030&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/505f1a6&quot;&gt;505f1a6&lt;/a&gt; Update: Allow parser to be relative to config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4985&quot;&gt;#4985&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/654e6e1&quot;&gt;654e6e1&lt;/a&gt; Update: Check extra Boolean calls in no-extra-boolean-cast (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3650&quot;&gt;#3650&lt;/a&gt;) (Andrew Sutton)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b33c74&quot;&gt;2b33c74&lt;/a&gt; Update: valid-jsdoc to not require @return in constructors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4976&quot;&gt;#4976&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05b8cb3&quot;&gt;05b8cb3&lt;/a&gt; Update: Module overrides all ‘strict’ rule options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4936&quot;&gt;#4936&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0a9024&quot;&gt;e0a9024&lt;/a&gt; Update: Report newline between template tag and literal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4210&quot;&gt;#4210&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da3336c&quot;&gt;da3336c&lt;/a&gt; Update: Rules should get &lt;code&gt;sourceType&lt;/code&gt; from Program node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4960&quot;&gt;#4960&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2ac359&quot;&gt;a2ac359&lt;/a&gt; Update: Make jsx-quotes fixable (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4377&quot;&gt;#4377&lt;/a&gt;) (Gabriele Petronella)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/700b8bc&quot;&gt;700b8bc&lt;/a&gt; Update: Add “allow” option to allow specific operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3308&quot;&gt;#3308&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d82eeb1&quot;&gt;d82eeb1&lt;/a&gt; Update: Add describe around rule tester blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4907&quot;&gt;#4907&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2967402&quot;&gt;2967402&lt;/a&gt; Update: Add minimum value to integer values in schema (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4941&quot;&gt;#4941&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1360da&quot;&gt;b1360da&lt;/a&gt; Update: Support multiLine and singleLine options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4697&quot;&gt;#4697&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d487013&quot;&gt;d487013&lt;/a&gt; Update: Option to allow extra parens for cond assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3317&quot;&gt;#3317&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2dee27&quot;&gt;c2dee27&lt;/a&gt; Update: Add module tests to no-extra-semi (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4915&quot;&gt;#4915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a633bf&quot;&gt;5a633bf&lt;/a&gt; Update: Add &lt;code&gt;preferType&lt;/code&gt; option to &lt;code&gt;valid-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3056&quot;&gt;#3056&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/186e8f0&quot;&gt;186e8f0&lt;/a&gt; Update: Ignore camelcase in object destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3185&quot;&gt;#3185&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1569695&quot;&gt;1569695&lt;/a&gt; Update: Adds default ‘that’ for consistent-this (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4833&quot;&gt;#4833&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82d4cd9&quot;&gt;82d4cd9&lt;/a&gt; Update: Add atomtest env (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4848&quot;&gt;#4848&lt;/a&gt;) (Andres Suarez)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c9beb5&quot;&gt;9c9beb5&lt;/a&gt; Update: Add “ignore” override for operator-linebreak (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4294&quot;&gt;#4294&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c03abc&quot;&gt;9c03abc&lt;/a&gt; Update: Add “allowCall” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4011&quot;&gt;#4011&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1288ba4&quot;&gt;1288ba4&lt;/a&gt; Update: Add default limit to &lt;code&gt;complexity&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4808&quot;&gt;#4808&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5050768&quot;&gt;5050768&lt;/a&gt; Update: Ask for &lt;code&gt;commonjs&lt;/code&gt; under config init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3553&quot;&gt;#3553&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ea6b36&quot;&gt;9ea6b36&lt;/a&gt; Update: Ignore case in jsdoc tags (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4576&quot;&gt;#4576&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4931f56&quot;&gt;4931f56&lt;/a&gt; Update: optionally allow bitwise operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4742&quot;&gt;#4742&lt;/a&gt;) (Swaagie)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add “safe” mode to strict (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3306&quot;&gt;#3306&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Add cwd option for cli-engine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4472&quot;&gt;#4472&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: Allow to omit semi for one-line blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4385&quot;&gt;#4385&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: configuration for classes in space-before-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4089&quot;&gt;#4089&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for semi-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3829&quot;&gt;#3829&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: option to ignore top-level max statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4309&quot;&gt;#4309&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-use-before-define&lt;/code&gt; checks invalid initializer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4280&quot;&gt;#4280&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add class body support to &lt;code&gt;indent&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4372&quot;&gt;#4372&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add ‘method’ option to no-empty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4605&quot;&gt;#4605&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: Option to ignore constructor Fns object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4487&quot;&gt;#4487&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: add class option to &lt;code&gt;no-use-before-define&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3944&quot;&gt;#3944&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: allowAfterThis option in no-underscore-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3435&quot;&gt;#3435&lt;/a&gt;) (just-boris)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;prefer-const&lt;/code&gt; begins to cover separating init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4474&quot;&gt;#4474&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-rc.1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-rc.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b46c893&quot;&gt;b46c893&lt;/a&gt; Fix: Config file relative paths (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5164&quot;&gt;#5164&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5160&quot;&gt;#5160&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/aa5b2ac&quot;&gt;aa5b2ac&lt;/a&gt; Fix: no-whitespace-before-property fixes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5167&quot;&gt;#5167&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e07fdd4&quot;&gt;e07fdd4&lt;/a&gt; Fix: code path analysis and labels (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5171&quot;&gt;#5171&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2417bb2&quot;&gt;2417bb2&lt;/a&gt; Fix: &lt;code&gt;no-unmodified-loop-condition&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5166&quot;&gt;#5166&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fae1884&quot;&gt;fae1884&lt;/a&gt; Fix: Allow same-line comments in padded-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5055&quot;&gt;#5055&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a24d8ad&quot;&gt;a24d8ad&lt;/a&gt; Fix: Improve autoconfig logging (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5119&quot;&gt;#5119&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a03919a&quot;&gt;a03919a&lt;/a&gt; Fix: &lt;code&gt;no-unexpected-multiline&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5148&quot;&gt;#5148&lt;/a&gt;) (Feross Aboukhadijeh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53a6eb3&quot;&gt;53a6eb3&lt;/a&gt; Fix: Handle singular case in rule-tester error message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5141&quot;&gt;#5141&lt;/a&gt;) (Bryan Smith)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/973c499&quot;&gt;973c499&lt;/a&gt; Fix: &lt;code&gt;sort-imports&lt;/code&gt; crash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5130&quot;&gt;#5130&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c83b48c&quot;&gt;c83b48c&lt;/a&gt; Fix: find ignore file only in cwd (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5087&quot;&gt;#5087&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c706eb9&quot;&gt;c706eb9&lt;/a&gt; Fix: reduced &lt;code&gt;no-loop-func&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5044&quot;&gt;#5044&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/361377f&quot;&gt;361377f&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; false positive reading before writing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5074&quot;&gt;#5074&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a327a06&quot;&gt;a327a06&lt;/a&gt; Fix: Indent rule for allman brace style scenario (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5064&quot;&gt;#5064&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afdff6d&quot;&gt;afdff6d&lt;/a&gt; Fix: &lt;code&gt;no-extra-bind&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5058&quot;&gt;#5058&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0f21a0&quot;&gt;b0f21a0&lt;/a&gt; Fix: &lt;code&gt;keyword-spacing&lt;/code&gt; false positive in template strings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5043&quot;&gt;#5043&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53fa5d1&quot;&gt;53fa5d1&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; false positive in a loop condition (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5024&quot;&gt;#5024&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8fbaa0&quot;&gt;b8fbaa0&lt;/a&gt; Fix: multiple message in TAP formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4975&quot;&gt;#4975&lt;/a&gt;) (Simon Degraeve)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/990f8da&quot;&gt;990f8da&lt;/a&gt; Fix: &lt;code&gt;getNodeByRangeIndex&lt;/code&gt; performance issue (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4989&quot;&gt;#4989&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5cd5429&quot;&gt;5cd5429&lt;/a&gt; Fix: function expression doc in call expression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4964&quot;&gt;#4964&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4173baa&quot;&gt;4173baa&lt;/a&gt; Fix: &lt;code&gt;no-dupe-class-members&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4981&quot;&gt;#4981&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee1014d&quot;&gt;ee1014d&lt;/a&gt; Fix: Incorrect error location for object-curly-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4957&quot;&gt;#4957&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b52ed17&quot;&gt;b52ed17&lt;/a&gt; Fix: Incorrect error location for space-in-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4956&quot;&gt;#4956&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c1bafb&quot;&gt;9c1bafb&lt;/a&gt; Fix: Columns of parse errors are off by 1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4896&quot;&gt;#4896&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86e6e57&quot;&gt;86e6e57&lt;/a&gt; Fix: Incorrect error at EOF for no-multiple-empty-lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4917&quot;&gt;#4917&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f058f3&quot;&gt;7f058f3&lt;/a&gt; Fix: Incorrect location for padded-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4913&quot;&gt;#4913&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3de8f7&quot;&gt;b3de8f7&lt;/a&gt; Fix: Do not show ignore messages for default ignored files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4931&quot;&gt;#4931&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f469b4&quot;&gt;0f469b4&lt;/a&gt; Fix: JSDoc for function expression on object property (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4900&quot;&gt;#4900&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4c4139&quot;&gt;c4c4139&lt;/a&gt; Fix: global-require no longer warns if require is shadowed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4812&quot;&gt;#4812&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8cfd56&quot;&gt;a8cfd56&lt;/a&gt; Fix: remove duplicate of eslint-config-eslint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4909&quot;&gt;#4909&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c275b41&quot;&gt;c275b41&lt;/a&gt; Fix: no-extra-parens ExpressionStatement restricted prods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4902&quot;&gt;#4902&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5e06f8&quot;&gt;e5e06f8&lt;/a&gt; Fix: Jsdoc comment for multi-line function expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4889&quot;&gt;#4889&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c9be60&quot;&gt;7c9be60&lt;/a&gt; Fix: Fix path errors in windows (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4888&quot;&gt;#4888&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1840e7&quot;&gt;a1840e7&lt;/a&gt; Fix: gray text was invisible on Solarized Dark theme (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4886&quot;&gt;#4886&lt;/a&gt;) (Jack Leigh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/688f277&quot;&gt;688f277&lt;/a&gt; Fix: Set proper exit code for Node &amp;gt; 0.10 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4691&quot;&gt;#4691&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58715e9&quot;&gt;58715e9&lt;/a&gt; Fix: Use single quotes in context.report messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4845&quot;&gt;#4845&lt;/a&gt;) (Joe Lencioni)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b7586b&quot;&gt;5b7586b&lt;/a&gt; Fix: do not require a @return tag for @interface (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4860&quot;&gt;#4860&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3e8179&quot;&gt;d3e8179&lt;/a&gt; Fix: env is rewritten by modules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4814&quot;&gt;#4814&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/315f272&quot;&gt;315f272&lt;/a&gt; Fix: Change max-warnings type to Int (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4660&quot;&gt;#4660&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f500d7d&quot;&gt;f500d7d&lt;/a&gt; Fix: allow extending @scope/eslint/file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4800&quot;&gt;#4800&lt;/a&gt;) (André Cruz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9bcbaf&quot;&gt;b9bcbaf&lt;/a&gt; Fix: Bug in no-extra-bind (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4806&quot;&gt;#4806&lt;/a&gt;) (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acdda24&quot;&gt;acdda24&lt;/a&gt; Fix: ignore argument parens in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4658&quot;&gt;#4658&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-invalid-this&lt;/code&gt; allows this in static method (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4669&quot;&gt;#4669&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Add source property for fatal errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3325&quot;&gt;#3325&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: always-multiline for comma-dangle import (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4704&quot;&gt;#4704&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Apply environment configs last (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3915&quot;&gt;#3915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Backtick behavior in quotes rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3090&quot;&gt;#3090&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Check 1tbs non-block else (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4692&quot;&gt;#4692&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Comma first issue in &lt;code&gt;indent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4739&quot;&gt;#4739&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3456&quot;&gt;#3456&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Empty schemas forbid any options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4789&quot;&gt;#4789&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: ensure &lt;code&gt;ConfigOps.merge&lt;/code&gt; do a deep copy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4682&quot;&gt;#4682&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Export class syntax for &lt;code&gt;require-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4667&quot;&gt;#4667&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Handle getters and setters in key-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4792&quot;&gt;#4792&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-constant-condition false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4737&quot;&gt;#4737&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: ObjectRestSpread throws error in key-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4763&quot;&gt;#4763&lt;/a&gt;) (Ziad El Khoury Hanna)&lt;/li&gt;
&lt;li&gt;Fix: Remove &lt;code&gt;isMarkedAsUsed&lt;/code&gt; function name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4783&quot;&gt;#4783&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Remove path analysis from debug log (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4631&quot;&gt;#4631&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Fix: RuleTester to show parsing errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4779&quot;&gt;#4779&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Set null to property ruleId when fatal is true (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4722&quot;&gt;#4722&lt;/a&gt;) (Sébastien Règne)&lt;/li&gt;
&lt;li&gt;Fix: small typos in code examples (Plusb Preco)&lt;/li&gt;
&lt;li&gt;Fix: support arrow functions in no-return-assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4743&quot;&gt;#4743&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Update rule tests for parser options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4673&quot;&gt;#4673&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: max-len rule overestimates the width of some tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4661&quot;&gt;#4661&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;Fix: Use oneValuePerFlag for --ignore-pattern option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;Fix: Handle forbidden LineTerminators in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4229&quot;&gt;#4229&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Check YieldExpression argument in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4608&quot;&gt;#4608&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Do not cache &lt;code&gt;package.json&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4611&quot;&gt;#4611&lt;/a&gt;) (Spain)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;consistent-return&lt;/code&gt; checks the last (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3373&quot;&gt;#3373&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unreachable&lt;/code&gt; with the code path (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3939&quot;&gt;#3939&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-this-before-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-fallthrough&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;constructor-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Adding options unit tests for --ignore-pattern (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-eval&lt;/code&gt; come to catch indirect eval (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4399&quot;&gt;#4399&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4441&quot;&gt;#4441&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-rc.1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-rc.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/718dc68&quot;&gt;718dc68&lt;/a&gt; Docs: Remove periods in rules’ README for consistency. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7a47085&quot;&gt;7a47085&lt;/a&gt; Docs: Correct &lt;code&gt;arrow-spacing&lt;/code&gt; overview. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a4cde1b&quot;&gt;a4cde1b&lt;/a&gt; Docs: Clarify global-require inside try/catch (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3834&quot;&gt;#3834&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd07925&quot;&gt;fd07925&lt;/a&gt; Docs: Clarify docs for api.verify (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5101&quot;&gt;#5101&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5104&quot;&gt;#5104&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e525923&quot;&gt;e525923&lt;/a&gt; Docs: Correct obvious inconsistencies in rules h2 elements (Mark Pedrotti)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9675b5e&quot;&gt;9675b5e&lt;/a&gt; Docs: &lt;code&gt;avoid-escape&lt;/code&gt; does not allow backticks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5147&quot;&gt;#5147&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/74360d6&quot;&gt;74360d6&lt;/a&gt; Docs: Note no-empty applies to empty block statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5105&quot;&gt;#5105&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/02c83df&quot;&gt;02c83df&lt;/a&gt; Docs: Update docs/rules/no-plusplus.md (Sheldon Griffin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a24240&quot;&gt;3a24240&lt;/a&gt; Docs: Fix jsdoc param names to match function param names (Thanos Lefteris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d79746&quot;&gt;1d79746&lt;/a&gt; Docs: Replace ecmaFeatures setting with link to config page (Thanos Lefteris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/757651e&quot;&gt;757651e&lt;/a&gt; Docs: Remove reference to rules enabled by default (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5100&quot;&gt;#5100&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d87f5d&quot;&gt;0d87f5d&lt;/a&gt; Docs: Clarify eslint-disable comments only affect rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5005&quot;&gt;#5005&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a227360&quot;&gt;a227360&lt;/a&gt; Docs: Replace joyent org with nodejs (Thanos Lefteris)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/889b942&quot;&gt;889b942&lt;/a&gt; Revert “Docs: Update readme for legend describing rules icons (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4355&quot;&gt;#4355&lt;/a&gt;)” (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/385d399&quot;&gt;385d399&lt;/a&gt; Docs: Update readme for legend describing rules icons (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fa834f&quot;&gt;3fa834f&lt;/a&gt; Docs: Fix formatter links (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5006&quot;&gt;#5006&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54b1bc8&quot;&gt;54b1bc8&lt;/a&gt; Docs: Fix link in &lt;a href=&quot;http://strict.md/&quot;&gt;strict.md&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5026&quot;&gt;#5026&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/69f149d&quot;&gt;69f149d&lt;/a&gt; Docs: language tweaks (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ac2e01&quot;&gt;6ac2e01&lt;/a&gt; Docs: Fix description of exported comment (Mickael Jeanroy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba11c1b&quot;&gt;ba11c1b&lt;/a&gt; Docs: Add Algolia as sponsor to README (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a456077&quot;&gt;a456077&lt;/a&gt; Docs: newline-after-var doesn’t allow invalid options. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82fbe09&quot;&gt;82fbe09&lt;/a&gt; Docs: Small semantic issue in documentation example (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4937&quot;&gt;#4937&lt;/a&gt;) (Marcelo Zarate)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13a4e30&quot;&gt;13a4e30&lt;/a&gt; Docs: Formatting inconsistencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4912&quot;&gt;#4912&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d626a3&quot;&gt;2d626a3&lt;/a&gt; Docs: Fix typo in changelog (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6390862&quot;&gt;6390862&lt;/a&gt; Docs: Fix missing footnote (Yoshiya Hinosawa)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc9f528&quot;&gt;fc9f528&lt;/a&gt; Docs: Modify unnecessary flag docs in quote-props (Matija Marohnić)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b3c01e&quot;&gt;0b3c01e&lt;/a&gt; Docs: Specify default for func-style (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4834&quot;&gt;#4834&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/008ea39&quot;&gt;008ea39&lt;/a&gt; Docs: Document default for operator assignment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4835&quot;&gt;#4835&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b566f56&quot;&gt;b566f56&lt;/a&gt; Docs: no-new-func typo (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7b28b7&quot;&gt;f7b28b7&lt;/a&gt; Docs: clarify &lt;code&gt;requireReturn&lt;/code&gt; option for valid-jsdoc rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4859&quot;&gt;#4859&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29516f1&quot;&gt;29516f1&lt;/a&gt; Docs: fix migration guide for no-arrow-condition rule (Peter Newnham)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ef7549&quot;&gt;2ef7549&lt;/a&gt; Docs: clarify remedy to some prefer-const errors (Turadg Aleahmad)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd72aba&quot;&gt;fd72aba&lt;/a&gt; Docs: Example fix for &lt;code&gt;no-extra-parens&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3527&quot;&gt;#3527&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/246a6d2&quot;&gt;246a6d2&lt;/a&gt; Docs: Documentation fix (Andres Kalle)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add license header to Working with Rules guide (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add section on file extensions to user-guide/configuring (adam)&lt;/li&gt;
&lt;li&gt;Docs: Escape underscores in no-path-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: fix typos, suggests (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: RuleTester doesn’t require any tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4681&quot;&gt;#4681&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in generator-star (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4756&quot;&gt;#4756&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-useless-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typos in space-before-keywords and space-unary-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4771&quot;&gt;#4771&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: writing mistake (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: no-extra-semi no longer refers to deprecated rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4598&quot;&gt;#4598&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Docs: Update docs/rules/no-plusplus.md (Xiangyun Chi)&lt;/li&gt;
&lt;li&gt;Docs: Add Code of Conduct (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3095&quot;&gt;#3095&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0c5cf7&quot;&gt;e0c5cf7&lt;/a&gt; Upgrade: Espree to 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5018&quot;&gt;#5018&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7457a4e&quot;&gt;7457a4e&lt;/a&gt; Upgrade: glob to 6.x (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4991&quot;&gt;#4991&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b632f8&quot;&gt;7b632f8&lt;/a&gt; Upgrade: Globals to ^8.18.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4728&quot;&gt;#4728&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c97201&quot;&gt;7c97201&lt;/a&gt; Upgrade: doctrine version to 1.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4854&quot;&gt;#4854&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/871f534&quot;&gt;871f534&lt;/a&gt; Upgrade: Optionator version to 0.8.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4851&quot;&gt;#4851&lt;/a&gt;) (Eric Johnson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: beefy to ^2.0.0, fixes installation errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4760&quot;&gt;#4760&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Handlebars to &amp;gt;= 4.0.5 for security reasons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4642&quot;&gt;#4642&lt;/a&gt;) (Jacques Favreau)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-rc.1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-rc.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6eeaa3f&quot;&gt;6eeaa3f&lt;/a&gt; Build: Remove pending tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5126&quot;&gt;#5126&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97ac91c&quot;&gt;97ac91c&lt;/a&gt; Build: Increment eslint-config-eslint (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff2551d&quot;&gt;ff2551d&lt;/a&gt; Build: Improve &lt;code&gt;npm run perf&lt;/code&gt; command (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5028&quot;&gt;#5028&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3f4bdd&quot;&gt;d3f4bdd&lt;/a&gt; Build: Cleanup for code coverage (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4983&quot;&gt;#4983&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ac1dac&quot;&gt;8ac1dac&lt;/a&gt; Build: Update markdownlint dependency to 0.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4988&quot;&gt;#4988&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fc80e9&quot;&gt;1fc80e9&lt;/a&gt; Build: Increment eslint-config-eslint (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebd01b7&quot;&gt;ebd01b7&lt;/a&gt; Build: Fix version number on release (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4921&quot;&gt;#4921&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c70d84&quot;&gt;6c70d84&lt;/a&gt; Build: Fix prerelease script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4919&quot;&gt;#4919&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3906481&quot;&gt;3906481&lt;/a&gt; Build: Add AppVeyor CI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4894&quot;&gt;#4894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/407f329&quot;&gt;407f329&lt;/a&gt; Build: Fix prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Build-Related (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Consume no-underscore-dangle allowAfterThis option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4599&quot;&gt;#4599&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.0.0-rc.0 released</title>
    <link href="https://eslint.org/blog/2016/02/eslint-v2.0.0-rc.0-released/"/>
    <updated>2016-02-02T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/02/eslint-v2.0.0-rc.0-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by &lt;a href=&quot;https://github.com/eslint/eslint/issues/new?body=I%27m%20using%20ESLint%20v2.0.0-rc.0%20and%20I%20(have%20some%20feedback%7Cfound%20a%20bug).%20I%20used%20this%20code%0A%0A(include%20full%20code)%0A%0Aand%20this%20configuration%0A%0A(include%20full%20configuration)%0A%0AAnd%20got%20this%20output%3A%0A%0A(include%20full%20ESLint%20output)%0A%0AI%20expected%20this%20instead%3A%0A%0A(describe%20what%20you%20thought%20should%20happen%20or%20what%20you%27d%20like%20to%20happen)&quot;&gt;creating issues&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@2.0.0-rc.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h3 id=&quot;code-path-analysis&quot; tabindex=&quot;-1&quot;&gt;Code Path Analysis&lt;/h3&gt;
&lt;p&gt;ESLint v2.0.0 formally introduces &lt;a href=&quot;https://eslint.org/docs/2.0.0/developer-guide/code-path-analysis.html&quot;&gt;code path analysis&lt;/a&gt;. While we’ve tried to make best guesses at how execution flowed through code, there were several instances where we just couldn’t get everything correct. For instance, trying to guarantee that every code path contained a &lt;code&gt;return&lt;/code&gt; statement. Fully implementing code path analysis means that we (and you, through custom rules) can now correctly understand how execution is proceeding through code. Several rules have been updated to make use of code path analysis, fixing some longtime bugs in existing rules. As a result, ESLint is even better at picking up certain types of errors.&lt;/p&gt;
&lt;h2 id=&quot;configuration-cascading-changes&quot; tabindex=&quot;-1&quot;&gt;Configuration Cascading Changes&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, if a directory contained both an &lt;code&gt;.eslintrc&lt;/code&gt; file and a &lt;code&gt;package.json&lt;/code&gt; file with ESLint configuration information, the settings from the two files would be merged together. In 2.0.0, only the settings from the &lt;code&gt;.eslintrc.*&lt;/code&gt; file are used and the ones in &lt;code&gt;package.json&lt;/code&gt; are ignored when both are present. Otherwise, &lt;code&gt;package.json&lt;/code&gt; can still be used with ESLint configuration, but only if no other &lt;code&gt;.eslintrc.*&lt;/code&gt; files are present.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;language-options&quot; tabindex=&quot;-1&quot;&gt;Language Options&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, the way to enable language options was by using &lt;code&gt;ecmaFeatures&lt;/code&gt; in your configuration. In 2.0.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures&lt;/code&gt; property is now under a top-level &lt;code&gt;parserOptions&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;All ECMAScript 6 &lt;code&gt;ecmaFeatures&lt;/code&gt; flags have been removed in favor of a &lt;code&gt;ecmaVersion&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; that can be set to 3, 5 (default), or 6.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures.modules&lt;/code&gt; flag has been replaced by a &lt;code&gt;sourceType&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; which can be set to &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt; (default) or &lt;code&gt;&amp;quot;module&amp;quot;&lt;/code&gt; for ES6 modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;plugin-changes&quot; tabindex=&quot;-1&quot;&gt;Plugin Changes&lt;/h2&gt;
&lt;p&gt;This version of ESLint introduces several changes to plugins (see &lt;a href=&quot;https://eslint.org/docs/2.0.0/developer-guide/working-with-plugins&quot;&gt;documentation&lt;/a&gt; for details):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;rulesConfig&lt;/code&gt; is no longer supported. We had received complaints from users who didn’t know that plugins could automatically turn on certain rules, and that functionality doesn’t make sense because ESLint rules are supposed to be off by default. As such, &lt;code&gt;rulesConfig&lt;/code&gt; will no longer set rules to be on or off by default.&lt;/li&gt;
&lt;li&gt;Plugins can now export environments. Environments are used to group global variables and parser options together, and now plugins can define custom environments.&lt;/li&gt;
&lt;li&gt;Plugins can now export shareable configs. Instead of needing to have a separate package for a shareable config, they can be bundled directly with the plugin.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;autoconfiguration&quot; tabindex=&quot;-1&quot;&gt;Autoconfiguration&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;--init&lt;/code&gt; option has been enhanced with a new ability: autoconfiguration. Now, in addition to answering a questionnaire or using a popular shareable config, you can also specify files to inspect to generate your configuration. This will create a configuration file that is based on the most common patterns found in your code.  Read more about this feature in &lt;a href=&quot;http://devnull.guru/adding-eslint-to-your-project-is-easier-than-ever/&quot;&gt;IanVS’s blog post&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;shareable-config-changes&quot; tabindex=&quot;-1&quot;&gt;Shareable Config Changes&lt;/h2&gt;
&lt;p&gt;Shareable configs now evaluate both the &lt;code&gt;parser&lt;/code&gt; and &lt;code&gt;extends&lt;/code&gt; fields as relative to the location of the config file itself. So you can use relative paths in both fields, and references to npm packages first check the &lt;code&gt;node_modules&lt;/code&gt; directory in the same directory as the shareable config.&lt;/p&gt;
&lt;h2 id=&quot;unicode-bom-support&quot; tabindex=&quot;-1&quot;&gt;Unicode BOM Support&lt;/h2&gt;
&lt;p&gt;If your files use a Unicode BOM, ESLint now properly handles parsing and evaluating your code and won’t get confused by its presence.&lt;/p&gt;
&lt;h2 id=&quot;built-in-global-variables&quot; tabindex=&quot;-1&quot;&gt;Built-In Global Variables&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, new global variables that were standardized as part of ES6 such as &lt;code&gt;Promise&lt;/code&gt;, &lt;code&gt;Map&lt;/code&gt;, &lt;code&gt;Set&lt;/code&gt;, and &lt;code&gt;Symbol&lt;/code&gt; were included in the built-in global environment. This could lead to potential issues when, for example, &lt;code&gt;no-undef&lt;/code&gt; permitted use of the &lt;code&gt;Promise&lt;/code&gt; constructor even in ES5 code where promises are unavailable. In 2.0.0, the built-in environment only includes the standard ES5 global variables, and the new ES6 global variables have been moved to the &lt;code&gt;es6&lt;/code&gt; environment.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;eslint%3Arecommended-updated&quot; tabindex=&quot;-1&quot;&gt;eslint:recommended Updated&lt;/h2&gt;
&lt;p&gt;We’ve updated the rules we recommend as a starting point. If you’re extending &lt;code&gt;eslint:recommended&lt;/code&gt;, then you should double-check your code after upgrading as there are new recommended rules (all of the added rules help identify errors, no stylistic rules were added).&lt;/p&gt;
&lt;h2 id=&quot;removing-no-arrow-condition%2C-adding-no-confusing-arrow&quot; tabindex=&quot;-1&quot;&gt;Removing &lt;code&gt;no-arrow-condition&lt;/code&gt;, Adding &lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;In looking at our rules, we discovered that &lt;code&gt;no-arrow-condition&lt;/code&gt; actually overlapped with &lt;code&gt;no-constant-condition&lt;/code&gt;, so we have removed &lt;code&gt;no-arrow-condition&lt;/code&gt; as a core rule. The &lt;code&gt;no-constant-condition&lt;/code&gt; will pick up the same errors as &lt;code&gt;no-arrow-condition&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There was an additional condition that had been part of &lt;code&gt;no-arrow-condition&lt;/code&gt; incorrectly, which checked for the use of arrow functions in conditional expressions. This functionality is now in the &lt;code&gt;no-confusing-arrow&lt;/code&gt; rule.&lt;/p&gt;
&lt;h2 id=&quot;new-visual-studio-formatter&quot; tabindex=&quot;-1&quot;&gt;New Visual Studio Formatter&lt;/h2&gt;
&lt;p&gt;We’ve added a new formatter called &lt;code&gt;visualstudio&lt;/code&gt;, which formats the results into a format that Visual Studio understands. If you use Visual Studio with ESLint, this new formatter makes the console output interactive, so you can click on a warning and be taken straight to the location in the file.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/id-blacklist&quot;&gt;&lt;code&gt;id-blacklist&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/keyword-spacing&quot;&gt;&lt;code&gt;keyword-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/newline-per-chained-call&quot;&gt;&lt;code&gt;newline-per-chained-call&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-confusing-arrow&quot;&gt;&lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-extra-label&quot;&gt;&lt;code&gt;no-extra-label&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-implicit-globals&quot;&gt;&lt;code&gt;no-implicit-globals&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-new-symbol&quot;&gt;&lt;code&gt;no-new-symbol&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-self-assign&quot;&gt;&lt;code&gt;no-self-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-unmodified-loop-condition&quot;&gt;&lt;code&gt;no-unmodified-loop-condition&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-unused-labels&quot;&gt;&lt;code&gt;no-unused-labels&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-useless-constructor&quot;&gt;&lt;code&gt;no-useless-constructor&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-whitespace-before-property&quot;&gt;&lt;code&gt;no-whitespace-before-property&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/one-var-declaration-per-line&quot;&gt;&lt;code&gt;one-var-declaration-per-line&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/prefer-rest-params&quot;&gt;&lt;code&gt;prefer-rest-params&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/template-curly-spacing&quot;&gt;&lt;code&gt;template-curly-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/yield-star-spacing&quot;&gt;&lt;code&gt;yield-star-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e64b2c2&quot;&gt;e64b2c2&lt;/a&gt; Breaking: remove &lt;code&gt;no-empty-label&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5042&quot;&gt;#5042&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79ebbc9&quot;&gt;79ebbc9&lt;/a&gt; Breaking: update &lt;code&gt;eslint:recommended&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5103&quot;&gt;#5103&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/519f39f&quot;&gt;519f39f&lt;/a&gt; Breaking: Remove deprecated rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5032&quot;&gt;#5032&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b28a19d&quot;&gt;b28a19d&lt;/a&gt; Breaking: Plugins envs and config removal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4782&quot;&gt;#4782&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4952&quot;&gt;#4952&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e6a24e&quot;&gt;3e6a24e&lt;/a&gt; Breaking: Change &lt;code&gt;strict&lt;/code&gt; default mode to “safe” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4961&quot;&gt;#4961&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b96265&quot;&gt;5b96265&lt;/a&gt; Breaking: Update eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4953&quot;&gt;#4953&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12fe803&quot;&gt;12fe803&lt;/a&gt; Breaking: Supports Unicode BOM (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4878&quot;&gt;#4878&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19a9fbb&quot;&gt;19a9fbb&lt;/a&gt; Breaking: &lt;code&gt;space-before-blocks&lt;/code&gt; ignores after keywords (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1338&quot;&gt;#1338&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b795850&quot;&gt;b795850&lt;/a&gt; Breaking: don’t load ~/.eslintrc when using --config flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4881&quot;&gt;#4881&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2f2b66&quot;&gt;e2f2b66&lt;/a&gt; Breaking: Remove defaults from &lt;code&gt;eslint:recommended&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4809&quot;&gt;#4809&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d43f26c&quot;&gt;d43f26c&lt;/a&gt; Breaking: migrate from minimatch to node-ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2365&quot;&gt;#2365&lt;/a&gt;) (Stefan Grönke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c07ca39&quot;&gt;c07ca39&lt;/a&gt; Breaking: merges keyword spacing rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3869&quot;&gt;#3869&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: deprecate &lt;code&gt;no-arrow-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Correct links between variables and references (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4615&quot;&gt;#4615&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement parserOptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4641&quot;&gt;#4641&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove space-after-keyword newline check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4149&quot;&gt;#4149&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Treat package.json like the rest of configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4451&quot;&gt;#4451&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove autofix from eqeqeq (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4578&quot;&gt;#4578&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove ES6 global variables from builtins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4085&quot;&gt;#4085&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Simplify rule schemas (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3625&quot;&gt;#3625&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: added bower_components to default ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3550&quot;&gt;#3550&lt;/a&gt;) (Julian Laval)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to Espree 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4334&quot;&gt;#4334&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Freeze context object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4495&quot;&gt;#4495&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove warnings of readonly from &lt;code&gt;no-undef&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4504&quot;&gt;#4504&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement yield-star-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4115&quot;&gt;#4115&lt;/a&gt;) (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Breaking: Default no-magic-numbers to none. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4193&quot;&gt;#4193&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Breaking: Allow empty arrow body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4411&quot;&gt;#4411&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e1d7368&quot;&gt;e1d7368&lt;/a&gt; New: &lt;code&gt;no-extra-label&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5059&quot;&gt;#5059&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e96ffd2&quot;&gt;e96ffd2&lt;/a&gt; New: &lt;code&gt;template-curly-spacing&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5049&quot;&gt;#5049&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1e791a2&quot;&gt;1e791a2&lt;/a&gt; New: &lt;code&gt;no-self-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4729&quot;&gt;#4729&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b2aedfe&quot;&gt;b2aedfe&lt;/a&gt; New: Rule to enforce newline after each call in the chain (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4538&quot;&gt;#4538&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d67bfdd&quot;&gt;d67bfdd&lt;/a&gt; New: &lt;code&gt;no-unused-labels&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5052&quot;&gt;#5052&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fea752&quot;&gt;4fea752&lt;/a&gt; New: Autoconfiguration from source inspection (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3567&quot;&gt;#3567&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c75ee4a&quot;&gt;c75ee4a&lt;/a&gt; New: Add support for configs in plugins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3659&quot;&gt;#3659&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79e8a0b&quot;&gt;79e8a0b&lt;/a&gt; New: &lt;code&gt;one-var-declaration-per-line&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1622&quot;&gt;#1622&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29392f8&quot;&gt;29392f8&lt;/a&gt; New: allow-multiline option on comma-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4967&quot;&gt;#4967&lt;/a&gt;) (Alberto Gimeno)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8470474&quot;&gt;8470474&lt;/a&gt; New: Add metadata to few test rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4494&quot;&gt;#4494&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e4841e&quot;&gt;5e4841e&lt;/a&gt; New: ‘id-blacklist’ rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3358&quot;&gt;#3358&lt;/a&gt;) (Keith Cirkel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bbf7f27&quot;&gt;bbf7f27&lt;/a&gt; New: provide config.parser via &lt;code&gt;parserName&lt;/code&gt; on RuleContext (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3670&quot;&gt;#3670&lt;/a&gt;) (Ben Mosher)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d5c9435&quot;&gt;#d5c9435&lt;/a&gt; New: ‘sort-imports’ rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3143&quot;&gt;#3143&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ceaf324&quot;&gt;ceaf324&lt;/a&gt; New: Add no-new-symbol rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4862&quot;&gt;#4862&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4665256&quot;&gt;4665256&lt;/a&gt; New: Add no-whitespace-before-property rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1086&quot;&gt;#1086&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ab564e&quot;&gt;5ab564e&lt;/a&gt; New: ‘ignoreArrayIndexes’ option for ‘no-magic-numbers’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4370&quot;&gt;#4370&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97cdb95&quot;&gt;97cdb95&lt;/a&gt; New: Add no-useless-constructor rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4785&quot;&gt;#4785&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;no-unmodified-loop-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4523&quot;&gt;#4523&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add a comment length option to the max-len rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4665&quot;&gt;#4665&lt;/a&gt;) (Ian)&lt;/li&gt;
&lt;li&gt;New: Add greasemonkey environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4715&quot;&gt;#4715&lt;/a&gt;) (silverwind)&lt;/li&gt;
&lt;li&gt;New: Add no-confusing-arrow rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;li&gt;New: Visual Studio compatible formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4708&quot;&gt;#4708&lt;/a&gt;) (rhpijnacker)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add no-implicit-globals rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4542&quot;&gt;#4542&lt;/a&gt;) (Joshua Peek)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;array-callback-return&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1128&quot;&gt;#1128&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add no-restricted-imports rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3196&quot;&gt;#3196&lt;/a&gt;) (Guy Ellis)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-rest-params&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4108&quot;&gt;#4108&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Code Path Analysis (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4b02902&quot;&gt;4b02902&lt;/a&gt; Update: Extended no-console rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5095&quot;&gt;#5095&lt;/a&gt;) (EricHenry)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3275e86&quot;&gt;3275e86&lt;/a&gt; Update: Add extra aliases to consistent-this rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4492&quot;&gt;#4492&lt;/a&gt;) (Zachary Alexander Belford)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86a3e3d&quot;&gt;86a3e3d&lt;/a&gt; Update: Remove blank lines at beginning of files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5045&quot;&gt;#5045&lt;/a&gt;) (Jared Sohn)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bcca69b&quot;&gt;bcca69b&lt;/a&gt; Update: add int32Hint option to &lt;code&gt;no-bitwise&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4873&quot;&gt;#4873&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3f2683&quot;&gt;e3f2683&lt;/a&gt; Update: config extends dependency lookup (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5023&quot;&gt;#5023&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1fad4f&quot;&gt;c1fad4f&lt;/a&gt; Update: add autofix support for spaced-comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4969&quot;&gt;#4969&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5030&quot;&gt;#5030&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/505f1a6&quot;&gt;505f1a6&lt;/a&gt; Update: Allow parser to be relative to config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4985&quot;&gt;#4985&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/654e6e1&quot;&gt;654e6e1&lt;/a&gt; Update: Check extra Boolean calls in no-extra-boolean-cast (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3650&quot;&gt;#3650&lt;/a&gt;) (Andrew Sutton)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b33c74&quot;&gt;2b33c74&lt;/a&gt; Update: valid-jsdoc to not require @return in constructors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4976&quot;&gt;#4976&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05b8cb3&quot;&gt;05b8cb3&lt;/a&gt; Update: Module overrides all ‘strict’ rule options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4936&quot;&gt;#4936&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0a9024&quot;&gt;e0a9024&lt;/a&gt; Update: Report newline between template tag and literal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4210&quot;&gt;#4210&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da3336c&quot;&gt;da3336c&lt;/a&gt; Update: Rules should get &lt;code&gt;sourceType&lt;/code&gt; from Program node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4960&quot;&gt;#4960&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2ac359&quot;&gt;a2ac359&lt;/a&gt; Update: Make jsx-quotes fixable (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4377&quot;&gt;#4377&lt;/a&gt;) (Gabriele Petronella)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/700b8bc&quot;&gt;700b8bc&lt;/a&gt; Update: Add “allow” option to allow specific operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3308&quot;&gt;#3308&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d82eeb1&quot;&gt;d82eeb1&lt;/a&gt; Update: Add describe around rule tester blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4907&quot;&gt;#4907&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2967402&quot;&gt;2967402&lt;/a&gt; Update: Add minimum value to integer values in schema (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4941&quot;&gt;#4941&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1360da&quot;&gt;b1360da&lt;/a&gt; Update: Support multiLine and singleLine options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4697&quot;&gt;#4697&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d487013&quot;&gt;d487013&lt;/a&gt; Update: Option to allow extra parens for cond assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3317&quot;&gt;#3317&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2dee27&quot;&gt;c2dee27&lt;/a&gt; Update: Add module tests to no-extra-semi (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4915&quot;&gt;#4915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a633bf&quot;&gt;5a633bf&lt;/a&gt; Update: Add &lt;code&gt;preferType&lt;/code&gt; option to &lt;code&gt;valid-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3056&quot;&gt;#3056&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/186e8f0&quot;&gt;186e8f0&lt;/a&gt; Update: Ignore camelcase in object destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3185&quot;&gt;#3185&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1569695&quot;&gt;1569695&lt;/a&gt; Update: Adds default ‘that’ for consistent-this (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4833&quot;&gt;#4833&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82d4cd9&quot;&gt;82d4cd9&lt;/a&gt; Update: Add atomtest env (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4848&quot;&gt;#4848&lt;/a&gt;) (Andres Suarez)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c9beb5&quot;&gt;9c9beb5&lt;/a&gt; Update: Add “ignore” override for operator-linebreak (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4294&quot;&gt;#4294&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c03abc&quot;&gt;9c03abc&lt;/a&gt; Update: Add “allowCall” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4011&quot;&gt;#4011&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1288ba4&quot;&gt;1288ba4&lt;/a&gt; Update: Add default limit to &lt;code&gt;complexity&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4808&quot;&gt;#4808&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5050768&quot;&gt;5050768&lt;/a&gt; Update: Ask for &lt;code&gt;commonjs&lt;/code&gt; under config init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3553&quot;&gt;#3553&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ea6b36&quot;&gt;9ea6b36&lt;/a&gt; Update: Ignore case in jsdoc tags (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4576&quot;&gt;#4576&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4931f56&quot;&gt;4931f56&lt;/a&gt; Update: optionally allow bitwise operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4742&quot;&gt;#4742&lt;/a&gt;) (Swaagie)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add “safe” mode to strict (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3306&quot;&gt;#3306&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Add cwd option for cli-engine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4472&quot;&gt;#4472&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: Allow to omit semi for one-line blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4385&quot;&gt;#4385&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: configuration for classes in space-before-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4089&quot;&gt;#4089&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for semi-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3829&quot;&gt;#3829&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: option to ignore top-level max statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4309&quot;&gt;#4309&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-use-before-define&lt;/code&gt; checks invalid initializer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4280&quot;&gt;#4280&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add class body support to &lt;code&gt;indent&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4372&quot;&gt;#4372&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add ‘method’ option to no-empty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4605&quot;&gt;#4605&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: Option to ignore constructor Fns object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4487&quot;&gt;#4487&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: add class option to &lt;code&gt;no-use-before-define&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3944&quot;&gt;#3944&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: allowAfterThis option in no-underscore-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3435&quot;&gt;#3435&lt;/a&gt;) (just-boris)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;prefer-const&lt;/code&gt; begins to cover separating init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4474&quot;&gt;#4474&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/973c499&quot;&gt;973c499&lt;/a&gt; Fix: &lt;code&gt;sort-imports&lt;/code&gt; crash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5130&quot;&gt;#5130&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c83b48c&quot;&gt;c83b48c&lt;/a&gt; Fix: find ignore file only in cwd (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5087&quot;&gt;#5087&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c706eb9&quot;&gt;c706eb9&lt;/a&gt; Fix: reduced &lt;code&gt;no-loop-func&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5044&quot;&gt;#5044&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/361377f&quot;&gt;361377f&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; false positive reading before writing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5074&quot;&gt;#5074&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a327a06&quot;&gt;a327a06&lt;/a&gt; Fix: Indent rule for allman brace style scenario (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5064&quot;&gt;#5064&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afdff6d&quot;&gt;afdff6d&lt;/a&gt; Fix: &lt;code&gt;no-extra-bind&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5058&quot;&gt;#5058&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0f21a0&quot;&gt;b0f21a0&lt;/a&gt; Fix: &lt;code&gt;keyword-spacing&lt;/code&gt; false positive in template strings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5043&quot;&gt;#5043&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53fa5d1&quot;&gt;53fa5d1&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; false positive in a loop condition (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5024&quot;&gt;#5024&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8fbaa0&quot;&gt;b8fbaa0&lt;/a&gt; Fix: multiple message in TAP formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4975&quot;&gt;#4975&lt;/a&gt;) (Simon Degraeve)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/990f8da&quot;&gt;990f8da&lt;/a&gt; Fix: &lt;code&gt;getNodeByRangeIndex&lt;/code&gt; performance issue (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4989&quot;&gt;#4989&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5cd5429&quot;&gt;5cd5429&lt;/a&gt; Fix: function expression doc in call expression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4964&quot;&gt;#4964&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4173baa&quot;&gt;4173baa&lt;/a&gt; Fix: &lt;code&gt;no-dupe-class-members&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4981&quot;&gt;#4981&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee1014d&quot;&gt;ee1014d&lt;/a&gt; Fix: Incorrect error location for object-curly-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4957&quot;&gt;#4957&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b52ed17&quot;&gt;b52ed17&lt;/a&gt; Fix: Incorrect error location for space-in-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4956&quot;&gt;#4956&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c1bafb&quot;&gt;9c1bafb&lt;/a&gt; Fix: Columns of parse errors are off by 1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4896&quot;&gt;#4896&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86e6e57&quot;&gt;86e6e57&lt;/a&gt; Fix: Incorrect error at EOF for no-multiple-empty-lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4917&quot;&gt;#4917&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f058f3&quot;&gt;7f058f3&lt;/a&gt; Fix: Incorrect location for padded-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4913&quot;&gt;#4913&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3de8f7&quot;&gt;b3de8f7&lt;/a&gt; Fix: Do not show ignore messages for default ignored files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4931&quot;&gt;#4931&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f469b4&quot;&gt;0f469b4&lt;/a&gt; Fix: JSDoc for function expression on object property (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4900&quot;&gt;#4900&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4c4139&quot;&gt;c4c4139&lt;/a&gt; Fix: global-require no longer warns if require is shadowed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4812&quot;&gt;#4812&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8cfd56&quot;&gt;a8cfd56&lt;/a&gt; Fix: remove duplicate of eslint-config-eslint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4909&quot;&gt;#4909&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c275b41&quot;&gt;c275b41&lt;/a&gt; Fix: no-extra-parens ExpressionStatement restricted prods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4902&quot;&gt;#4902&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5e06f8&quot;&gt;e5e06f8&lt;/a&gt; Fix: Jsdoc comment for multi-line function expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4889&quot;&gt;#4889&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c9be60&quot;&gt;7c9be60&lt;/a&gt; Fix: Fix path errors in windows (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4888&quot;&gt;#4888&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1840e7&quot;&gt;a1840e7&lt;/a&gt; Fix: gray text was invisible on Solarized Dark theme (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4886&quot;&gt;#4886&lt;/a&gt;) (Jack Leigh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/688f277&quot;&gt;688f277&lt;/a&gt; Fix: Set proper exit code for Node &amp;gt; 0.10 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4691&quot;&gt;#4691&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58715e9&quot;&gt;58715e9&lt;/a&gt; Fix: Use single quotes in context.report messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4845&quot;&gt;#4845&lt;/a&gt;) (Joe Lencioni)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b7586b&quot;&gt;5b7586b&lt;/a&gt; Fix: do not require a @return tag for @interface (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4860&quot;&gt;#4860&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3e8179&quot;&gt;d3e8179&lt;/a&gt; Fix: env is rewritten by modules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4814&quot;&gt;#4814&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/315f272&quot;&gt;315f272&lt;/a&gt; Fix: Change max-warnings type to Int (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4660&quot;&gt;#4660&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f500d7d&quot;&gt;f500d7d&lt;/a&gt; Fix: allow extending @scope/eslint/file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4800&quot;&gt;#4800&lt;/a&gt;) (André Cruz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9bcbaf&quot;&gt;b9bcbaf&lt;/a&gt; Fix: Bug in no-extra-bind (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4806&quot;&gt;#4806&lt;/a&gt;) (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acdda24&quot;&gt;acdda24&lt;/a&gt; Fix: ignore argument parens in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4658&quot;&gt;#4658&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-invalid-this&lt;/code&gt; allows this in static method (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4669&quot;&gt;#4669&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Add source property for fatal errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3325&quot;&gt;#3325&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: always-multiline for comma-dangle import (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4704&quot;&gt;#4704&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Apply environment configs last (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3915&quot;&gt;#3915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Backtick behavior in quotes rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3090&quot;&gt;#3090&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Check 1tbs non-block else (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4692&quot;&gt;#4692&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Comma first issue in &lt;code&gt;indent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4739&quot;&gt;#4739&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3456&quot;&gt;#3456&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Empty schemas forbid any options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4789&quot;&gt;#4789&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: ensure &lt;code&gt;ConfigOps.merge&lt;/code&gt; do a deep copy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4682&quot;&gt;#4682&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Export class syntax for &lt;code&gt;require-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4667&quot;&gt;#4667&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Handle getters and setters in key-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4792&quot;&gt;#4792&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-constant-condition false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4737&quot;&gt;#4737&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: ObjectRestSpread throws error in key-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4763&quot;&gt;#4763&lt;/a&gt;) (Ziad El Khoury Hanna)&lt;/li&gt;
&lt;li&gt;Fix: Remove &lt;code&gt;isMarkedAsUsed&lt;/code&gt; function name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4783&quot;&gt;#4783&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Remove path analysis from debug log (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4631&quot;&gt;#4631&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Fix: RuleTester to show parsing errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4779&quot;&gt;#4779&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Set null to property ruleId when fatal is true (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4722&quot;&gt;#4722&lt;/a&gt;) (Sébastien Règne)&lt;/li&gt;
&lt;li&gt;Fix: small typos in code examples (Plusb Preco)&lt;/li&gt;
&lt;li&gt;Fix: support arrow functions in no-return-assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4743&quot;&gt;#4743&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Update rule tests for parser options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4673&quot;&gt;#4673&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: max-len rule overestimates the width of some tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4661&quot;&gt;#4661&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;Fix: Use oneValuePerFlag for --ignore-pattern option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;Fix: Handle forbidden LineTerminators in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4229&quot;&gt;#4229&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Check YieldExpression argument in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4608&quot;&gt;#4608&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Do not cache &lt;code&gt;package.json&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4611&quot;&gt;#4611&lt;/a&gt;) (Spain)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;consistent-return&lt;/code&gt; checks the last (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3373&quot;&gt;#3373&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unreachable&lt;/code&gt; with the code path (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3939&quot;&gt;#3939&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-this-before-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-fallthrough&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;constructor-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Adding options unit tests for --ignore-pattern (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-eval&lt;/code&gt; come to catch indirect eval (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4399&quot;&gt;#4399&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4441&quot;&gt;#4441&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-rc.0)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-rc.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3a24240&quot;&gt;3a24240&lt;/a&gt; Docs: Fix jsdoc param names to match function param names (Thanos Lefteris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1d79746&quot;&gt;1d79746&lt;/a&gt; Docs: Replace ecmaFeatures setting with link to config page (Thanos Lefteris)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/757651e&quot;&gt;757651e&lt;/a&gt; Docs: Remove reference to rules enabled by default (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5100&quot;&gt;#5100&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0d87f5d&quot;&gt;0d87f5d&lt;/a&gt; Docs: Clarify eslint-disable comments only affect rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5005&quot;&gt;#5005&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a227360&quot;&gt;a227360&lt;/a&gt; Docs: Replace joyent org with nodejs (Thanos Lefteris)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/889b942&quot;&gt;889b942&lt;/a&gt; Revert “Docs: Update readme for legend describing rules icons (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4355&quot;&gt;#4355&lt;/a&gt;)” (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/385d399&quot;&gt;385d399&lt;/a&gt; Docs: Update readme for legend describing rules icons (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fa834f&quot;&gt;3fa834f&lt;/a&gt; Docs: Fix formatter links (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5006&quot;&gt;#5006&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54b1bc8&quot;&gt;54b1bc8&lt;/a&gt; Docs: Fix link in &lt;a href=&quot;http://strict.md/&quot;&gt;strict.md&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5026&quot;&gt;#5026&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/69f149d&quot;&gt;69f149d&lt;/a&gt; Docs: language tweaks (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ac2e01&quot;&gt;6ac2e01&lt;/a&gt; Docs: Fix description of exported comment (Mickael Jeanroy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba11c1b&quot;&gt;ba11c1b&lt;/a&gt; Docs: Add Algolia as sponsor to README (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a456077&quot;&gt;a456077&lt;/a&gt; Docs: newline-after-var doesn’t allow invalid options. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82fbe09&quot;&gt;82fbe09&lt;/a&gt; Docs: Small semantic issue in documentation example (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4937&quot;&gt;#4937&lt;/a&gt;) (Marcelo Zarate)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13a4e30&quot;&gt;13a4e30&lt;/a&gt; Docs: Formatting inconsistencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4912&quot;&gt;#4912&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d626a3&quot;&gt;2d626a3&lt;/a&gt; Docs: Fix typo in changelog (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6390862&quot;&gt;6390862&lt;/a&gt; Docs: Fix missing footnote (Yoshiya Hinosawa)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc9f528&quot;&gt;fc9f528&lt;/a&gt; Docs: Modify unnecessary flag docs in quote-props (Matija Marohnić)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b3c01e&quot;&gt;0b3c01e&lt;/a&gt; Docs: Specify default for func-style (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4834&quot;&gt;#4834&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/008ea39&quot;&gt;008ea39&lt;/a&gt; Docs: Document default for operator assignment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4835&quot;&gt;#4835&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b566f56&quot;&gt;b566f56&lt;/a&gt; Docs: no-new-func typo (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7b28b7&quot;&gt;f7b28b7&lt;/a&gt; Docs: clarify &lt;code&gt;requireReturn&lt;/code&gt; option for valid-jsdoc rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4859&quot;&gt;#4859&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29516f1&quot;&gt;29516f1&lt;/a&gt; Docs: fix migration guide for no-arrow-condition rule (Peter Newnham)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ef7549&quot;&gt;2ef7549&lt;/a&gt; Docs: clarify remedy to some prefer-const errors (Turadg Aleahmad)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd72aba&quot;&gt;fd72aba&lt;/a&gt; Docs: Example fix for &lt;code&gt;no-extra-parens&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3527&quot;&gt;#3527&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/246a6d2&quot;&gt;246a6d2&lt;/a&gt; Docs: Documentation fix (Andres Kalle)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add license header to Working with Rules guide (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add section on file extensions to user-guide/configuring (adam)&lt;/li&gt;
&lt;li&gt;Docs: Escape underscores in no-path-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: fix typos, suggests (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: RuleTester doesn’t require any tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4681&quot;&gt;#4681&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in generator-star (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4756&quot;&gt;#4756&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-useless-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typos in space-before-keywords and space-unary-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4771&quot;&gt;#4771&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: writing mistake (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: no-extra-semi no longer refers to deprecated rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4598&quot;&gt;#4598&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Docs: Update docs/rules/no-plusplus.md (Xiangyun Chi)&lt;/li&gt;
&lt;li&gt;Docs: Add Code of Conduct (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3095&quot;&gt;#3095&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0c5cf7&quot;&gt;e0c5cf7&lt;/a&gt; Upgrade: Espree to 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5018&quot;&gt;#5018&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7457a4e&quot;&gt;7457a4e&lt;/a&gt; Upgrade: glob to 6.x (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4991&quot;&gt;#4991&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b632f8&quot;&gt;7b632f8&lt;/a&gt; Upgrade: Globals to ^8.18.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4728&quot;&gt;#4728&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c97201&quot;&gt;7c97201&lt;/a&gt; Upgrade: doctrine version to 1.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4854&quot;&gt;#4854&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/871f534&quot;&gt;871f534&lt;/a&gt; Upgrade: Optionator version to 0.8.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4851&quot;&gt;#4851&lt;/a&gt;) (Eric Johnson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: beefy to ^2.0.0, fixes installation errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4760&quot;&gt;#4760&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Handlebars to &amp;gt;= 4.0.5 for security reasons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4642&quot;&gt;#4642&lt;/a&gt;) (Jacques Favreau)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff2551d&quot;&gt;ff2551d&lt;/a&gt; Build: Improve &lt;code&gt;npm run perf&lt;/code&gt; command (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5028&quot;&gt;#5028&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3f4bdd&quot;&gt;d3f4bdd&lt;/a&gt; Build: Cleanup for code coverage (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4983&quot;&gt;#4983&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ac1dac&quot;&gt;8ac1dac&lt;/a&gt; Build: Update markdownlint dependency to 0.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4988&quot;&gt;#4988&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fc80e9&quot;&gt;1fc80e9&lt;/a&gt; Build: Increment eslint-config-eslint (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebd01b7&quot;&gt;ebd01b7&lt;/a&gt; Build: Fix version number on release (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4921&quot;&gt;#4921&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c70d84&quot;&gt;6c70d84&lt;/a&gt; Build: Fix prerelease script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4919&quot;&gt;#4919&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3906481&quot;&gt;3906481&lt;/a&gt; Build: Add AppVeyor CI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4894&quot;&gt;#4894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/407f329&quot;&gt;407f329&lt;/a&gt; Build: Fix prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Build-Related (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Consume no-underscore-dangle allowAfterThis option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4599&quot;&gt;#4599&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.0.0-beta.3 released</title>
    <link href="https://eslint.org/blog/2016/01/eslint-v2.0.0-beta.3-released/"/>
    <updated>2016-01-29T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/01/eslint-v2.0.0-beta.3-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by &lt;a href=&quot;https://github.com/eslint/eslint/issues/new?body=I%27m%20using%20ESLint%20v2.0.0-alpha-2%20and%20I%20(have%20some%20feedback%7Cfound%20a%20bug).%20I%20used%20this%20code%0A%0A(include%20full%20code)%0A%0Aand%20this%20configuration%0A%0A(include%20full%20configuration)%0A%0AAnd%20got%20this%20output%3A%0A%0A(include%20full%20ESLint%20output)%0A%0AI%20expected%20this%20instead%3A%0A%0A(describe%20what%20you%20thought%20should%20happen%20or%20what%20you%27d%20like%20to%20happen)&quot;&gt;creating issues&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@2.0.0-beta.3 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h3 id=&quot;code-path-analysis&quot; tabindex=&quot;-1&quot;&gt;Code Path Analysis&lt;/h3&gt;
&lt;p&gt;ESLint v2.0.0 formally introduces &lt;a href=&quot;https://eslint.org/docs/2.0.0/developer-guide/code-path-analysis.html&quot;&gt;code path analysis&lt;/a&gt;. While we’ve tried to make best guesses at how execution flowed through code, there were several instances where we just couldn’t get everything correct. For instance, trying to guarantee that every code path contained a &lt;code&gt;return&lt;/code&gt; statement. Fully implementing code path analysis means that we (and you, through custom rules) can now correctly understand how execution is proceeding through code. Several rules have been updated to make use of code path analysis, fixing some longtime bugs in existing rules. As a result, ESLint is even better at picking up certain types of errors.&lt;/p&gt;
&lt;h2 id=&quot;configuration-cascading-changes&quot; tabindex=&quot;-1&quot;&gt;Configuration Cascading Changes&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, if a directory contained both an &lt;code&gt;.eslintrc&lt;/code&gt; file and a &lt;code&gt;package.json&lt;/code&gt; file with ESLint configuration information, the settings from the two files would be merged together. In 2.0.0, only the settings from the &lt;code&gt;.eslintrc.*&lt;/code&gt; file are used and the ones in &lt;code&gt;package.json&lt;/code&gt; are ignored when both are present. Otherwise, &lt;code&gt;package.json&lt;/code&gt; can still be used with ESLint configuration, but only if no other &lt;code&gt;.eslintrc.*&lt;/code&gt; files are present.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;language-options&quot; tabindex=&quot;-1&quot;&gt;Language Options&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, the way to enable language options was by using &lt;code&gt;ecmaFeatures&lt;/code&gt; in your configuration. In 2.0.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures&lt;/code&gt; property is now under a top-level &lt;code&gt;parserOptions&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;All ECMAScript 6 &lt;code&gt;ecmaFeatures&lt;/code&gt; flags have been removed in favor of a &lt;code&gt;ecmaVersion&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; that can be set to 3, 5 (default), or 6.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures.modules&lt;/code&gt; flag has been replaced by a &lt;code&gt;sourceType&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; which can be set to &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt; (default) or &lt;code&gt;&amp;quot;module&amp;quot;&lt;/code&gt; for ES6 modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;plugin-changes&quot; tabindex=&quot;-1&quot;&gt;Plugin Changes&lt;/h2&gt;
&lt;p&gt;This version of ESLint introduces several changes to plugins (see &lt;a href=&quot;https://eslint.org/docs/2.0.0/developer-guide/working-with-plugins&quot;&gt;documentation&lt;/a&gt; for details):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;rulesConfig&lt;/code&gt; is no longer supported. We had received complaints from users who didn’t know that plugins could automatically turn on certain rules, and that functionality doesn’t make sense because ESLint rules are supposed to be off by default. As such, &lt;code&gt;rulesConfig&lt;/code&gt; will no longer set rules to be on or off by default.&lt;/li&gt;
&lt;li&gt;Plugins can now export environments. Environments are used to group global variables and parser options together, and now plugins can define custom environments.&lt;/li&gt;
&lt;li&gt;Plugins can now export shareable configs. Instead of needing to have a separate package for a shareable config, they can be bundled directly with the plugin.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;autoconfiguration&quot; tabindex=&quot;-1&quot;&gt;Autoconfiguration&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;--init&lt;/code&gt; option has been enhanced with a new ability: autoconfiguration. Now, in addition to answering a questionnaire or using a popular shareable config, you can also specify files to inspect to generate your configuration. This will create a configuration file that is based on the most common patterns found in your code.  Read more about this feature in &lt;a href=&quot;http://devnull.guru/adding-eslint-to-your-project-is-easier-than-ever/&quot;&gt;IanVS’s blog post&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;shareable-config-changes&quot; tabindex=&quot;-1&quot;&gt;Shareable Config Changes&lt;/h2&gt;
&lt;p&gt;Shareable configs now evaluate both the &lt;code&gt;parser&lt;/code&gt; and &lt;code&gt;extends&lt;/code&gt; fields as relative to the location of the config file itself. So you can use relative paths in both fields, and references to npm packages first check the &lt;code&gt;node_modules&lt;/code&gt; directory in the same directory as the shareable config.&lt;/p&gt;
&lt;h2 id=&quot;unicode-bom-support&quot; tabindex=&quot;-1&quot;&gt;Unicode BOM Support&lt;/h2&gt;
&lt;p&gt;If your files use a Unicode BOM, ESLint now properly handles parsing and evaluating your code and won’t get confused by its presence.&lt;/p&gt;
&lt;h2 id=&quot;built-in-global-variables&quot; tabindex=&quot;-1&quot;&gt;Built-In Global Variables&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, new global variables that were standardized as part of ES6 such as &lt;code&gt;Promise&lt;/code&gt;, &lt;code&gt;Map&lt;/code&gt;, &lt;code&gt;Set&lt;/code&gt;, and &lt;code&gt;Symbol&lt;/code&gt; were included in the built-in global environment. This could lead to potential issues when, for example, &lt;code&gt;no-undef&lt;/code&gt; permitted use of the &lt;code&gt;Promise&lt;/code&gt; constructor even in ES5 code where promises are unavailable. In 2.0.0, the built-in environment only includes the standard ES5 global variables, and the new ES6 global variables have been moved to the &lt;code&gt;es6&lt;/code&gt; environment.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;removing-no-arrow-condition%2C-adding-no-confusing-arrow&quot; tabindex=&quot;-1&quot;&gt;Removing &lt;code&gt;no-arrow-condition&lt;/code&gt;, Adding &lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;In looking at our rules, we discovered that &lt;code&gt;no-arrow-condition&lt;/code&gt; actually overlapped with &lt;code&gt;no-constant-condition&lt;/code&gt;, so we have removed &lt;code&gt;no-arrow-condition&lt;/code&gt; as a core rule. The &lt;code&gt;no-constant-condition&lt;/code&gt; will pick up the same errors as &lt;code&gt;no-arrow-condition&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There was an additional condition that had been part of &lt;code&gt;no-arrow-condition&lt;/code&gt; incorrectly, which checked for the use of arrow functions in conditional expressions. This functionality is now in the &lt;code&gt;no-confusing-arrow&lt;/code&gt; rule.&lt;/p&gt;
&lt;h2 id=&quot;new-visual-studio-formatter&quot; tabindex=&quot;-1&quot;&gt;New Visual Studio Formatter&lt;/h2&gt;
&lt;p&gt;We’ve added a new formatter called &lt;code&gt;visualstudio&lt;/code&gt;, which formats the results into a format that Visual Studio understands. If you use Visual Studio with ESLint, this new formatter makes the console output interactive, so you can click on a warning and be taken straight to the location in the file.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/id-blacklist&quot;&gt;&lt;code&gt;id-blacklist&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/keyword-spacing&quot;&gt;&lt;code&gt;keyword-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-confusing-arrow&quot;&gt;&lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-implicit-globals&quot;&gt;&lt;code&gt;no-implicit-globals&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-new-symbol&quot;&gt;&lt;code&gt;no-new-symbol&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-unmodified-loop-condition&quot;&gt;&lt;code&gt;no-unmodified-loop-condition&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-useless-constructor&quot;&gt;&lt;code&gt;no-useless-constructor&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-whitespace-before-property&quot;&gt;&lt;code&gt;no-whitespace-before-property&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/one-var-declaration-per-line&quot;&gt;&lt;code&gt;one-var-declaration-per-line&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/prefer-rest-params&quot;&gt;&lt;code&gt;prefer-rest-params&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/yield-star-spacing&quot;&gt;&lt;code&gt;yield-star-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/519f39f&quot;&gt;519f39f&lt;/a&gt; Breaking: Remove deprecated rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5032&quot;&gt;#5032&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b28a19d&quot;&gt;b28a19d&lt;/a&gt; Breaking: Plugins envs and config removal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4782&quot;&gt;#4782&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4952&quot;&gt;#4952&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e6a24e&quot;&gt;3e6a24e&lt;/a&gt; Breaking: Change &lt;code&gt;strict&lt;/code&gt; default mode to “safe” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4961&quot;&gt;#4961&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b96265&quot;&gt;5b96265&lt;/a&gt; Breaking: Update eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4953&quot;&gt;#4953&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12fe803&quot;&gt;12fe803&lt;/a&gt; Breaking: Supports Unicode BOM (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4878&quot;&gt;#4878&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19a9fbb&quot;&gt;19a9fbb&lt;/a&gt; Breaking: &lt;code&gt;space-before-blocks&lt;/code&gt; ignores after keywords (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1338&quot;&gt;#1338&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b795850&quot;&gt;b795850&lt;/a&gt; Breaking: don’t load ~/.eslintrc when using --config flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4881&quot;&gt;#4881&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2f2b66&quot;&gt;e2f2b66&lt;/a&gt; Breaking: Remove defaults from &lt;code&gt;eslint:recommended&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4809&quot;&gt;#4809&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d43f26c&quot;&gt;d43f26c&lt;/a&gt; Breaking: migrate from minimatch to node-ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2365&quot;&gt;#2365&lt;/a&gt;) (Stefan Grönke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c07ca39&quot;&gt;c07ca39&lt;/a&gt; Breaking: merges keyword spacing rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3869&quot;&gt;#3869&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: deprecate &lt;code&gt;no-arrow-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Correct links between variables and references (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4615&quot;&gt;#4615&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement parserOptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4641&quot;&gt;#4641&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove space-after-keyword newline check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4149&quot;&gt;#4149&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Treat package.json like the rest of configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4451&quot;&gt;#4451&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove autofix from eqeqeq (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4578&quot;&gt;#4578&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove ES6 global variables from builtins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4085&quot;&gt;#4085&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Simplify rule schemas (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3625&quot;&gt;#3625&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: added bower_components to default ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3550&quot;&gt;#3550&lt;/a&gt;) (Julian Laval)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to Espree 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4334&quot;&gt;#4334&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Freeze context object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4495&quot;&gt;#4495&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove warnings of readonly from &lt;code&gt;no-undef&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4504&quot;&gt;#4504&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement yield-star-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4115&quot;&gt;#4115&lt;/a&gt;) (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Breaking: Default no-magic-numbers to none. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4193&quot;&gt;#4193&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Breaking: Allow empty arrow body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4411&quot;&gt;#4411&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4fea752&quot;&gt;4fea752&lt;/a&gt; New: Autoconfiguration from source inspection (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3567&quot;&gt;#3567&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c75ee4a&quot;&gt;c75ee4a&lt;/a&gt; New: Add support for configs in plugins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3659&quot;&gt;#3659&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/79e8a0b&quot;&gt;79e8a0b&lt;/a&gt; New: &lt;code&gt;one-var-declaration-per-line&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1622&quot;&gt;#1622&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29392f8&quot;&gt;29392f8&lt;/a&gt; New: allow-multiline option on comma-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4967&quot;&gt;#4967&lt;/a&gt;) (Alberto Gimeno)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8470474&quot;&gt;8470474&lt;/a&gt; New: Add metadata to few test rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4494&quot;&gt;#4494&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e4841e&quot;&gt;5e4841e&lt;/a&gt; New: ‘id-blacklist’ rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3358&quot;&gt;#3358&lt;/a&gt;) (Keith Cirkel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bbf7f27&quot;&gt;bbf7f27&lt;/a&gt; New: provide config.parser via &lt;code&gt;parserName&lt;/code&gt; on RuleContext (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3670&quot;&gt;#3670&lt;/a&gt;) (Ben Mosher)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d5c9435&quot;&gt;#d5c9435&lt;/a&gt; New: ‘sort-imports’ rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3143&quot;&gt;#3143&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ceaf324&quot;&gt;ceaf324&lt;/a&gt; New: Add no-new-symbol rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4862&quot;&gt;#4862&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4665256&quot;&gt;4665256&lt;/a&gt; New: Add no-whitespace-before-property rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1086&quot;&gt;#1086&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ab564e&quot;&gt;5ab564e&lt;/a&gt; New: ‘ignoreArrayIndexes’ option for ‘no-magic-numbers’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4370&quot;&gt;#4370&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97cdb95&quot;&gt;97cdb95&lt;/a&gt; New: Add no-useless-constructor rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4785&quot;&gt;#4785&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;no-unmodified-loop-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4523&quot;&gt;#4523&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add a comment length option to the max-len rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4665&quot;&gt;#4665&lt;/a&gt;) (Ian)&lt;/li&gt;
&lt;li&gt;New: Add greasemonkey environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4715&quot;&gt;#4715&lt;/a&gt;) (silverwind)&lt;/li&gt;
&lt;li&gt;New: Add no-confusing-arrow rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;li&gt;New: Visual Studio compatible formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4708&quot;&gt;#4708&lt;/a&gt;) (rhpijnacker)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add no-implicit-globals rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4542&quot;&gt;#4542&lt;/a&gt;) (Joshua Peek)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;array-callback-return&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1128&quot;&gt;#1128&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add no-restricted-imports rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3196&quot;&gt;#3196&lt;/a&gt;) (Guy Ellis)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-rest-params&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4108&quot;&gt;#4108&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Code Path Analysis (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86a3e3d&quot;&gt;86a3e3d&lt;/a&gt; Update: Remove blank lines at beginning of files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5045&quot;&gt;#5045&lt;/a&gt;) (Jared Sohn)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bcca69b&quot;&gt;bcca69b&lt;/a&gt; Update: add int32Hint option to &lt;code&gt;no-bitwise&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4873&quot;&gt;#4873&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e3f2683&quot;&gt;e3f2683&lt;/a&gt; Update: config extends dependency lookup (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5023&quot;&gt;#5023&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c1fad4f&quot;&gt;c1fad4f&lt;/a&gt; Update: add autofix support for spaced-comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4969&quot;&gt;#4969&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5030&quot;&gt;#5030&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/505f1a6&quot;&gt;505f1a6&lt;/a&gt; Update: Allow parser to be relative to config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4985&quot;&gt;#4985&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/654e6e1&quot;&gt;654e6e1&lt;/a&gt; Update: Check extra Boolean calls in no-extra-boolean-cast (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3650&quot;&gt;#3650&lt;/a&gt;) (Andrew Sutton)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b33c74&quot;&gt;2b33c74&lt;/a&gt; Update: valid-jsdoc to not require @return in constructors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4976&quot;&gt;#4976&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05b8cb3&quot;&gt;05b8cb3&lt;/a&gt; Update: Module overrides all ‘strict’ rule options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4936&quot;&gt;#4936&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0a9024&quot;&gt;e0a9024&lt;/a&gt; Update: Report newline between template tag and literal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4210&quot;&gt;#4210&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da3336c&quot;&gt;da3336c&lt;/a&gt; Update: Rules should get &lt;code&gt;sourceType&lt;/code&gt; from Program node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4960&quot;&gt;#4960&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2ac359&quot;&gt;a2ac359&lt;/a&gt; Update: Make jsx-quotes fixable (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4377&quot;&gt;#4377&lt;/a&gt;) (Gabriele Petronella)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/700b8bc&quot;&gt;700b8bc&lt;/a&gt; Update: Add “allow” option to allow specific operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3308&quot;&gt;#3308&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d82eeb1&quot;&gt;d82eeb1&lt;/a&gt; Update: Add describe around rule tester blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4907&quot;&gt;#4907&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2967402&quot;&gt;2967402&lt;/a&gt; Update: Add minimum value to integer values in schema (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4941&quot;&gt;#4941&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1360da&quot;&gt;b1360da&lt;/a&gt; Update: Support multiLine and singleLine options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4697&quot;&gt;#4697&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d487013&quot;&gt;d487013&lt;/a&gt; Update: Option to allow extra parens for cond assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3317&quot;&gt;#3317&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2dee27&quot;&gt;c2dee27&lt;/a&gt; Update: Add module tests to no-extra-semi (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4915&quot;&gt;#4915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a633bf&quot;&gt;5a633bf&lt;/a&gt; Update: Add &lt;code&gt;preferType&lt;/code&gt; option to &lt;code&gt;valid-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3056&quot;&gt;#3056&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/186e8f0&quot;&gt;186e8f0&lt;/a&gt; Update: Ignore camelcase in object destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3185&quot;&gt;#3185&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1569695&quot;&gt;1569695&lt;/a&gt; Update: Adds default ‘that’ for consistent-this (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4833&quot;&gt;#4833&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82d4cd9&quot;&gt;82d4cd9&lt;/a&gt; Update: Add atomtest env (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4848&quot;&gt;#4848&lt;/a&gt;) (Andres Suarez)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c9beb5&quot;&gt;9c9beb5&lt;/a&gt; Update: Add “ignore” override for operator-linebreak (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4294&quot;&gt;#4294&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c03abc&quot;&gt;9c03abc&lt;/a&gt; Update: Add “allowCall” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4011&quot;&gt;#4011&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1288ba4&quot;&gt;1288ba4&lt;/a&gt; Update: Add default limit to &lt;code&gt;complexity&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4808&quot;&gt;#4808&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5050768&quot;&gt;5050768&lt;/a&gt; Update: Ask for &lt;code&gt;commonjs&lt;/code&gt; under config init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3553&quot;&gt;#3553&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ea6b36&quot;&gt;9ea6b36&lt;/a&gt; Update: Ignore case in jsdoc tags (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4576&quot;&gt;#4576&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4931f56&quot;&gt;4931f56&lt;/a&gt; Update: optionally allow bitwise operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4742&quot;&gt;#4742&lt;/a&gt;) (Swaagie)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add “safe” mode to strict (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3306&quot;&gt;#3306&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Add cwd option for cli-engine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4472&quot;&gt;#4472&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: Allow to omit semi for one-line blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4385&quot;&gt;#4385&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: configuration for classes in space-before-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4089&quot;&gt;#4089&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for semi-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3829&quot;&gt;#3829&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: option to ignore top-level max statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4309&quot;&gt;#4309&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-use-before-define&lt;/code&gt; checks invalid initializer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4280&quot;&gt;#4280&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add class body support to &lt;code&gt;indent&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4372&quot;&gt;#4372&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add ‘method’ option to no-empty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4605&quot;&gt;#4605&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: Option to ignore constructor Fns object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4487&quot;&gt;#4487&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: add class option to &lt;code&gt;no-use-before-define&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3944&quot;&gt;#3944&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: allowAfterThis option in no-underscore-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3435&quot;&gt;#3435&lt;/a&gt;) (just-boris)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;prefer-const&lt;/code&gt; begins to cover separating init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4474&quot;&gt;#4474&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/361377f&quot;&gt;361377f&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; false positive reading before writing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5074&quot;&gt;#5074&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a327a06&quot;&gt;a327a06&lt;/a&gt; Fix: Indent rule for allman brace style scenario (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5064&quot;&gt;#5064&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/afdff6d&quot;&gt;afdff6d&lt;/a&gt; Fix: &lt;code&gt;no-extra-bind&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5058&quot;&gt;#5058&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b0f21a0&quot;&gt;b0f21a0&lt;/a&gt; Fix: &lt;code&gt;keyword-spacing&lt;/code&gt; false positive in template strings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5043&quot;&gt;#5043&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/53fa5d1&quot;&gt;53fa5d1&lt;/a&gt; Fix: &lt;code&gt;prefer-const&lt;/code&gt; false positive in a loop condition (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5024&quot;&gt;#5024&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8fbaa0&quot;&gt;b8fbaa0&lt;/a&gt; Fix: multiple message in TAP formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4975&quot;&gt;#4975&lt;/a&gt;) (Simon Degraeve)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/990f8da&quot;&gt;990f8da&lt;/a&gt; Fix: &lt;code&gt;getNodeByRangeIndex&lt;/code&gt; performance issue (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4989&quot;&gt;#4989&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5cd5429&quot;&gt;5cd5429&lt;/a&gt; Fix: function expression doc in call expression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4964&quot;&gt;#4964&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4173baa&quot;&gt;4173baa&lt;/a&gt; Fix: &lt;code&gt;no-dupe-class-members&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4981&quot;&gt;#4981&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee1014d&quot;&gt;ee1014d&lt;/a&gt; Fix: Incorrect error location for object-curly-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4957&quot;&gt;#4957&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b52ed17&quot;&gt;b52ed17&lt;/a&gt; Fix: Incorrect error location for space-in-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4956&quot;&gt;#4956&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c1bafb&quot;&gt;9c1bafb&lt;/a&gt; Fix: Columns of parse errors are off by 1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4896&quot;&gt;#4896&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86e6e57&quot;&gt;86e6e57&lt;/a&gt; Fix: Incorrect error at EOF for no-multiple-empty-lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4917&quot;&gt;#4917&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f058f3&quot;&gt;7f058f3&lt;/a&gt; Fix: Incorrect location for padded-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4913&quot;&gt;#4913&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3de8f7&quot;&gt;b3de8f7&lt;/a&gt; Fix: Do not show ignore messages for default ignored files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4931&quot;&gt;#4931&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f469b4&quot;&gt;0f469b4&lt;/a&gt; Fix: JSDoc for function expression on object property (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4900&quot;&gt;#4900&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4c4139&quot;&gt;c4c4139&lt;/a&gt; Fix: global-require no longer warns if require is shadowed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4812&quot;&gt;#4812&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8cfd56&quot;&gt;a8cfd56&lt;/a&gt; Fix: remove duplicate of eslint-config-eslint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4909&quot;&gt;#4909&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c275b41&quot;&gt;c275b41&lt;/a&gt; Fix: no-extra-parens ExpressionStatement restricted prods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4902&quot;&gt;#4902&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5e06f8&quot;&gt;e5e06f8&lt;/a&gt; Fix: Jsdoc comment for multi-line function expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4889&quot;&gt;#4889&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c9be60&quot;&gt;7c9be60&lt;/a&gt; Fix: Fix path errors in windows (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4888&quot;&gt;#4888&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1840e7&quot;&gt;a1840e7&lt;/a&gt; Fix: gray text was invisible on Solarized Dark theme (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4886&quot;&gt;#4886&lt;/a&gt;) (Jack Leigh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/688f277&quot;&gt;688f277&lt;/a&gt; Fix: Set proper exit code for Node &amp;gt; 0.10 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4691&quot;&gt;#4691&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58715e9&quot;&gt;58715e9&lt;/a&gt; Fix: Use single quotes in context.report messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4845&quot;&gt;#4845&lt;/a&gt;) (Joe Lencioni)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b7586b&quot;&gt;5b7586b&lt;/a&gt; Fix: do not require a @return tag for @interface (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4860&quot;&gt;#4860&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3e8179&quot;&gt;d3e8179&lt;/a&gt; Fix: env is rewritten by modules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4814&quot;&gt;#4814&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/315f272&quot;&gt;315f272&lt;/a&gt; Fix: Change max-warnings type to Int (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4660&quot;&gt;#4660&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f500d7d&quot;&gt;f500d7d&lt;/a&gt; Fix: allow extending @scope/eslint/file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4800&quot;&gt;#4800&lt;/a&gt;) (André Cruz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9bcbaf&quot;&gt;b9bcbaf&lt;/a&gt; Fix: Bug in no-extra-bind (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4806&quot;&gt;#4806&lt;/a&gt;) (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acdda24&quot;&gt;acdda24&lt;/a&gt; Fix: ignore argument parens in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4658&quot;&gt;#4658&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-invalid-this&lt;/code&gt; allows this in static method (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4669&quot;&gt;#4669&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Add source property for fatal errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3325&quot;&gt;#3325&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: always-multiline for comma-dangle import (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4704&quot;&gt;#4704&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Apply environment configs last (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3915&quot;&gt;#3915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Backtick behavior in quotes rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3090&quot;&gt;#3090&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Check 1tbs non-block else (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4692&quot;&gt;#4692&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Comma first issue in &lt;code&gt;indent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4739&quot;&gt;#4739&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3456&quot;&gt;#3456&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Empty schemas forbid any options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4789&quot;&gt;#4789&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: ensure &lt;code&gt;ConfigOps.merge&lt;/code&gt; do a deep copy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4682&quot;&gt;#4682&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Export class syntax for &lt;code&gt;require-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4667&quot;&gt;#4667&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Handle getters and setters in key-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4792&quot;&gt;#4792&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-constant-condition false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4737&quot;&gt;#4737&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: ObjectRestSpread throws error in key-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4763&quot;&gt;#4763&lt;/a&gt;) (Ziad El Khoury Hanna)&lt;/li&gt;
&lt;li&gt;Fix: Remove &lt;code&gt;isMarkedAsUsed&lt;/code&gt; function name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4783&quot;&gt;#4783&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Remove path analysis from debug log (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4631&quot;&gt;#4631&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Fix: RuleTester to show parsing errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4779&quot;&gt;#4779&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Set null to property ruleId when fatal is true (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4722&quot;&gt;#4722&lt;/a&gt;) (Sébastien Règne)&lt;/li&gt;
&lt;li&gt;Fix: small typos in code examples (Plusb Preco)&lt;/li&gt;
&lt;li&gt;Fix: support arrow functions in no-return-assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4743&quot;&gt;#4743&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Update rule tests for parser options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4673&quot;&gt;#4673&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: max-len rule overestimates the width of some tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4661&quot;&gt;#4661&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;Fix: Use oneValuePerFlag for --ignore-pattern option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;Fix: Handle forbidden LineTerminators in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4229&quot;&gt;#4229&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Check YieldExpression argument in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4608&quot;&gt;#4608&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Do not cache &lt;code&gt;package.json&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4611&quot;&gt;#4611&lt;/a&gt;) (Spain)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;consistent-return&lt;/code&gt; checks the last (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3373&quot;&gt;#3373&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unreachable&lt;/code&gt; with the code path (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3939&quot;&gt;#3939&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-this-before-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-fallthrough&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;constructor-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Adding options unit tests for --ignore-pattern (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-eval&lt;/code&gt; come to catch indirect eval (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4399&quot;&gt;#4399&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4441&quot;&gt;#4441&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/889b942&quot;&gt;889b942&lt;/a&gt; Revert “Docs: Update readme for legend describing rules icons (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4355&quot;&gt;#4355&lt;/a&gt;)” (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/385d399&quot;&gt;385d399&lt;/a&gt; Docs: Update readme for legend describing rules icons (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fa834f&quot;&gt;3fa834f&lt;/a&gt; Docs: Fix formatter links (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5006&quot;&gt;#5006&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54b1bc8&quot;&gt;54b1bc8&lt;/a&gt; Docs: Fix link in &lt;a href=&quot;http://strict.md/&quot;&gt;strict.md&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5026&quot;&gt;#5026&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/69f149d&quot;&gt;69f149d&lt;/a&gt; Docs: language tweaks (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ac2e01&quot;&gt;6ac2e01&lt;/a&gt; Docs: Fix description of exported comment (Mickael Jeanroy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba11c1b&quot;&gt;ba11c1b&lt;/a&gt; Docs: Add Algolia as sponsor to README (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a456077&quot;&gt;a456077&lt;/a&gt; Docs: newline-after-var doesn’t allow invalid options. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82fbe09&quot;&gt;82fbe09&lt;/a&gt; Docs: Small semantic issue in documentation example (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4937&quot;&gt;#4937&lt;/a&gt;) (Marcelo Zarate)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13a4e30&quot;&gt;13a4e30&lt;/a&gt; Docs: Formatting inconsistencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4912&quot;&gt;#4912&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d626a3&quot;&gt;2d626a3&lt;/a&gt; Docs: Fix typo in changelog (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6390862&quot;&gt;6390862&lt;/a&gt; Docs: Fix missing footnote (Yoshiya Hinosawa)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc9f528&quot;&gt;fc9f528&lt;/a&gt; Docs: Modify unnecessary flag docs in quote-props (Matija Marohnić)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b3c01e&quot;&gt;0b3c01e&lt;/a&gt; Docs: Specify default for func-style (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4834&quot;&gt;#4834&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/008ea39&quot;&gt;008ea39&lt;/a&gt; Docs: Document default for operator assignment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4835&quot;&gt;#4835&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b566f56&quot;&gt;b566f56&lt;/a&gt; Docs: no-new-func typo (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7b28b7&quot;&gt;f7b28b7&lt;/a&gt; Docs: clarify &lt;code&gt;requireReturn&lt;/code&gt; option for valid-jsdoc rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4859&quot;&gt;#4859&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29516f1&quot;&gt;29516f1&lt;/a&gt; Docs: fix migration guide for no-arrow-condition rule (Peter Newnham)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ef7549&quot;&gt;2ef7549&lt;/a&gt; Docs: clarify remedy to some prefer-const errors (Turadg Aleahmad)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd72aba&quot;&gt;fd72aba&lt;/a&gt; Docs: Example fix for &lt;code&gt;no-extra-parens&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3527&quot;&gt;#3527&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/246a6d2&quot;&gt;246a6d2&lt;/a&gt; Docs: Documentation fix (Andres Kalle)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add license header to Working with Rules guide (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add section on file extensions to user-guide/configuring (adam)&lt;/li&gt;
&lt;li&gt;Docs: Escape underscores in no-path-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: fix typos, suggests (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: RuleTester doesn’t require any tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4681&quot;&gt;#4681&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in generator-star (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4756&quot;&gt;#4756&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-useless-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typos in space-before-keywords and space-unary-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4771&quot;&gt;#4771&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: writing mistake (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: no-extra-semi no longer refers to deprecated rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4598&quot;&gt;#4598&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Docs: Update docs/rules/no-plusplus.md (Xiangyun Chi)&lt;/li&gt;
&lt;li&gt;Docs: Add Code of Conduct (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3095&quot;&gt;#3095&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0c5cf7&quot;&gt;e0c5cf7&lt;/a&gt; Upgrade: Espree to 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5018&quot;&gt;#5018&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7457a4e&quot;&gt;7457a4e&lt;/a&gt; Upgrade: glob to 6.x (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4991&quot;&gt;#4991&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b632f8&quot;&gt;7b632f8&lt;/a&gt; Upgrade: Globals to ^8.18.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4728&quot;&gt;#4728&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c97201&quot;&gt;7c97201&lt;/a&gt; Upgrade: doctrine version to 1.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4854&quot;&gt;#4854&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/871f534&quot;&gt;871f534&lt;/a&gt; Upgrade: Optionator version to 0.8.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4851&quot;&gt;#4851&lt;/a&gt;) (Eric Johnson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: beefy to ^2.0.0, fixes installation errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4760&quot;&gt;#4760&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Handlebars to &amp;gt;= 4.0.5 for security reasons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4642&quot;&gt;#4642&lt;/a&gt;) (Jacques Favreau)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.3)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ff2551d&quot;&gt;ff2551d&lt;/a&gt; Build: Improve &lt;code&gt;npm run perf&lt;/code&gt; command (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5028&quot;&gt;#5028&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3f4bdd&quot;&gt;d3f4bdd&lt;/a&gt; Build: Cleanup for code coverage (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4983&quot;&gt;#4983&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ac1dac&quot;&gt;8ac1dac&lt;/a&gt; Build: Update markdownlint dependency to 0.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4988&quot;&gt;#4988&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fc80e9&quot;&gt;1fc80e9&lt;/a&gt; Build: Increment eslint-config-eslint (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebd01b7&quot;&gt;ebd01b7&lt;/a&gt; Build: Fix version number on release (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4921&quot;&gt;#4921&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c70d84&quot;&gt;6c70d84&lt;/a&gt; Build: Fix prerelease script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4919&quot;&gt;#4919&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3906481&quot;&gt;3906481&lt;/a&gt; Build: Add AppVeyor CI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4894&quot;&gt;#4894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/407f329&quot;&gt;407f329&lt;/a&gt; Build: Fix prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Build-Related (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Consume no-underscore-dangle allowAfterThis option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4599&quot;&gt;#4599&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.0.0-beta.2 released</title>
    <link href="https://eslint.org/blog/2016/01/eslint-v2.0.0-beta.2-released/"/>
    <updated>2016-01-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/01/eslint-v2.0.0-beta.2-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by &lt;a href=&quot;https://github.com/eslint/eslint/issues/new?body=I%27m%20using%20ESLint%20v2.0.0-alpha-2%20and%20I%20(have%20some%20feedback%7Cfound%20a%20bug).%20I%20used%20this%20code%0A%0A(include%20full%20code)%0A%0Aand%20this%20configuration%0A%0A(include%20full%20configuration)%0A%0AAnd%20got%20this%20output%3A%0A%0A(include%20full%20ESLint%20output)%0A%0AI%20expected%20this%20instead%3A%0A%0A(describe%20what%20you%20thought%20should%20happen%20or%20what%20you%27d%20like%20to%20happen)&quot;&gt;creating issues&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@2.0.0-beta.2 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h3 id=&quot;code-path-analysis&quot; tabindex=&quot;-1&quot;&gt;Code Path Analysis&lt;/h3&gt;
&lt;p&gt;ESLint v2.0.0 formally introduces &lt;a href=&quot;https://eslint.org/docs/2.0.0/developer-guide/code-path-analysis.html&quot;&gt;code path analysis&lt;/a&gt;. While we’ve tried to make best guesses at how execution flowed through code, there were several instances where we just couldn’t get everything correct. For instance, trying to guarantee that every code path contained a &lt;code&gt;return&lt;/code&gt; statement. Fully implementing code path analysis means that we (and you, through custom rules) can now correctly understand how execution is proceeding through code. Several rules have been updated to make use of code path analysis, fixing some longtime bugs in existing rules. As a result, ESLint is even better at picking up certain types of errors.&lt;/p&gt;
&lt;h2 id=&quot;configuration-cascading-changes&quot; tabindex=&quot;-1&quot;&gt;Configuration Cascading Changes&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, if a directory contained both an &lt;code&gt;.eslintrc&lt;/code&gt; file and a &lt;code&gt;package.json&lt;/code&gt; file with ESLint configuration information, the settings from the two files would be merged together. In 2.0.0, only the settings from the &lt;code&gt;.eslintrc.*&lt;/code&gt; file are used and the ones in &lt;code&gt;package.json&lt;/code&gt; are ignored when both are present. Otherwise, &lt;code&gt;package.json&lt;/code&gt; can still be used with ESLint configuration, but only if no other &lt;code&gt;.eslintrc.*&lt;/code&gt; files are present.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;language-options&quot; tabindex=&quot;-1&quot;&gt;Language Options&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, the way to enable language options was by using &lt;code&gt;ecmaFeatures&lt;/code&gt; in your configuration. In 2.0.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures&lt;/code&gt; property is now under a top-level &lt;code&gt;parserOptions&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;All ECMAScript 6 &lt;code&gt;ecmaFeatures&lt;/code&gt; flags have been removed in favor of a &lt;code&gt;ecmaVersion&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; that can be set to 3, 5 (default), or 6.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures.modules&lt;/code&gt; flag has been replaced by a &lt;code&gt;sourceType&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; which can be set to &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt; (default) or &lt;code&gt;&amp;quot;module&amp;quot;&lt;/code&gt; for ES6 modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;plugin-changes&quot; tabindex=&quot;-1&quot;&gt;Plugin Changes&lt;/h2&gt;
&lt;p&gt;This version of ESLint introduces several changes to plugins:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;rulesConfig&lt;/code&gt; is no longer supported. We had received complaints from users who didn’t know that plugins could automatically turn on certain rules, and that functionality doesn’t make sense because ESLint rules are supposed to be off by default. As such, &lt;code&gt;rulesConfig&lt;/code&gt; will no longer set rules to be on or off by default.&lt;/li&gt;
&lt;li&gt;Plugins can now include environments. Environments are used to group global variables and parser options together, and now plugins can define custom environments.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;unicode-bom-support&quot; tabindex=&quot;-1&quot;&gt;Unicode BOM Support&lt;/h2&gt;
&lt;p&gt;If your files use a Unicode BOM, ESLint now properly handles parsing and evaluating your code and won’t get confused by its presence.&lt;/p&gt;
&lt;h2 id=&quot;built-in-global-variables&quot; tabindex=&quot;-1&quot;&gt;Built-In Global Variables&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, new global variables that were standardized as part of ES6 such as &lt;code&gt;Promise&lt;/code&gt;, &lt;code&gt;Map&lt;/code&gt;, &lt;code&gt;Set&lt;/code&gt;, and &lt;code&gt;Symbol&lt;/code&gt; were included in the built-in global environment. This could lead to potential issues when, for example, &lt;code&gt;no-undef&lt;/code&gt; permitted use of the &lt;code&gt;Promise&lt;/code&gt; constructor even in ES5 code where promises are unavailable. In 2.0.0, the built-in environment only includes the standard ES5 global variables, and the new ES6 global variables have been moved to the &lt;code&gt;es6&lt;/code&gt; environment.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;removing-no-arrow-condition%2C-adding-no-confusing-arrow&quot; tabindex=&quot;-1&quot;&gt;Removing &lt;code&gt;no-arrow-condition&lt;/code&gt;, Adding &lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;In looking at our rules, we discovered that &lt;code&gt;no-arrow-condition&lt;/code&gt; actually overlapped with &lt;code&gt;no-constant-condition&lt;/code&gt;, so we have removed &lt;code&gt;no-arrow-condition&lt;/code&gt; as a core rule. The &lt;code&gt;no-constant-condition&lt;/code&gt; will pick up the same errors as &lt;code&gt;no-arrow-condition&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There was an additional condition that had been part of &lt;code&gt;no-arrow-condition&lt;/code&gt; incorrectly, which checked for the use of arrow functions in conditional expressions. This functionality is now in the &lt;code&gt;no-confusing-arrow&lt;/code&gt; rule.&lt;/p&gt;
&lt;h2 id=&quot;new-visual-studio-formatter&quot; tabindex=&quot;-1&quot;&gt;New Visual Studio Formatter&lt;/h2&gt;
&lt;p&gt;We’ve added a new formatter called &lt;code&gt;visualstudio&lt;/code&gt;, which formats the results into a format that Visual Studio understands. If you use Visual Studio with ESLint, this new formatter makes the console output interactive, so you can click on a warning and be taken straight to the location in the file.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/id-blacklist&quot;&gt;&lt;code&gt;id-blacklist&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/keyword-spacing&quot;&gt;&lt;code&gt;keyword-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-confusing-arrow&quot;&gt;&lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-implicit-globals&quot;&gt;&lt;code&gt;no-implicit-globals&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-new-symbol&quot;&gt;&lt;code&gt;no-new-symbol&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-unmodified-loop-condition&quot;&gt;&lt;code&gt;no-unmodified-loop-condition&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-useless-constructor&quot;&gt;&lt;code&gt;no-useless-constructor&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-whitespace-before-property&quot;&gt;&lt;code&gt;no-whitespace-before-property&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/prefer-rest-params&quot;&gt;&lt;code&gt;prefer-rest-params&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/yield-star-spacing&quot;&gt;&lt;code&gt;yield-star-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b28a19d&quot;&gt;b28a19d&lt;/a&gt; Breaking: Plugins envs and config removal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4782&quot;&gt;#4782&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4952&quot;&gt;#4952&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3e6a24e&quot;&gt;3e6a24e&lt;/a&gt; Breaking: Change &lt;code&gt;strict&lt;/code&gt; default mode to “safe” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4961&quot;&gt;#4961&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b96265&quot;&gt;5b96265&lt;/a&gt; Breaking: Update eslint:recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4953&quot;&gt;#4953&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/12fe803&quot;&gt;12fe803&lt;/a&gt; Breaking: Supports Unicode BOM (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4878&quot;&gt;#4878&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19a9fbb&quot;&gt;19a9fbb&lt;/a&gt; Breaking: &lt;code&gt;space-before-blocks&lt;/code&gt; ignores after keywords (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1338&quot;&gt;#1338&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b795850&quot;&gt;b795850&lt;/a&gt; Breaking: don’t load ~/.eslintrc when using --config flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4881&quot;&gt;#4881&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2f2b66&quot;&gt;e2f2b66&lt;/a&gt; Breaking: Remove defaults from &lt;code&gt;eslint:recommended&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4809&quot;&gt;#4809&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d43f26c&quot;&gt;d43f26c&lt;/a&gt; Breaking: migrate from minimatch to node-ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2365&quot;&gt;#2365&lt;/a&gt;) (Stefan Grönke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c07ca39&quot;&gt;c07ca39&lt;/a&gt; Breaking: merges keyword spacing rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3869&quot;&gt;#3869&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: deprecate &lt;code&gt;no-arrow-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Correct links between variables and references (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4615&quot;&gt;#4615&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement parserOptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4641&quot;&gt;#4641&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove space-after-keyword newline check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4149&quot;&gt;#4149&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Treat package.json like the rest of configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4451&quot;&gt;#4451&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove autofix from eqeqeq (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4578&quot;&gt;#4578&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove ES6 global variables from builtins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4085&quot;&gt;#4085&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Simplify rule schemas (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3625&quot;&gt;#3625&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: added bower_components to default ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3550&quot;&gt;#3550&lt;/a&gt;) (Julian Laval)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to Espree 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4334&quot;&gt;#4334&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Freeze context object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4495&quot;&gt;#4495&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove warnings of readonly from &lt;code&gt;no-undef&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4504&quot;&gt;#4504&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement yield-star-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4115&quot;&gt;#4115&lt;/a&gt;) (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Breaking: Default no-magic-numbers to none. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4193&quot;&gt;#4193&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Breaking: Allow empty arrow body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4411&quot;&gt;#4411&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29392f8&quot;&gt;29392f8&lt;/a&gt; New: allow-multiline option on comma-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4967&quot;&gt;#4967&lt;/a&gt;) (Alberto Gimeno)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8470474&quot;&gt;8470474&lt;/a&gt; New: Add metadata to few test rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4494&quot;&gt;#4494&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5e4841e&quot;&gt;5e4841e&lt;/a&gt; New: ‘id-blacklist’ rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3358&quot;&gt;#3358&lt;/a&gt;) (Keith Cirkel)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/bbf7f27&quot;&gt;bbf7f27&lt;/a&gt; New: provide config.parser via &lt;code&gt;parserName&lt;/code&gt; on RuleContext (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3670&quot;&gt;#3670&lt;/a&gt;) (Ben Mosher)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d5c9435&quot;&gt;#d5c9435&lt;/a&gt; New: ‘sort-imports’ rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3143&quot;&gt;#3143&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ceaf324&quot;&gt;ceaf324&lt;/a&gt; New: Add no-new-symbol rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4862&quot;&gt;#4862&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4665256&quot;&gt;4665256&lt;/a&gt; New: Add no-whitespace-before-property rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1086&quot;&gt;#1086&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ab564e&quot;&gt;5ab564e&lt;/a&gt; New: ‘ignoreArrayIndexes’ option for ‘no-magic-numbers’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4370&quot;&gt;#4370&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97cdb95&quot;&gt;97cdb95&lt;/a&gt; New: Add no-useless-constructor rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4785&quot;&gt;#4785&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;no-unmodified-loop-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4523&quot;&gt;#4523&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add a comment length option to the max-len rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4665&quot;&gt;#4665&lt;/a&gt;) (Ian)&lt;/li&gt;
&lt;li&gt;New: Add greasemonkey environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4715&quot;&gt;#4715&lt;/a&gt;) (silverwind)&lt;/li&gt;
&lt;li&gt;New: Add no-confusing-arrow rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;li&gt;New: Visual Studio compatible formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4708&quot;&gt;#4708&lt;/a&gt;) (rhpijnacker)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add no-implicit-globals rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4542&quot;&gt;#4542&lt;/a&gt;) (Joshua Peek)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;array-callback-return&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1128&quot;&gt;#1128&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add no-restricted-imports rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3196&quot;&gt;#3196&lt;/a&gt;) (Guy Ellis)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-rest-params&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4108&quot;&gt;#4108&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Code Path Analysis (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2b33c74&quot;&gt;2b33c74&lt;/a&gt; Update: valid-jsdoc to not require @return in constructors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4976&quot;&gt;#4976&lt;/a&gt;) (Maga D. Zandaqo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/05b8cb3&quot;&gt;05b8cb3&lt;/a&gt; Update: Module overrides all ‘strict’ rule options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4936&quot;&gt;#4936&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0a9024&quot;&gt;e0a9024&lt;/a&gt; Update: Report newline between template tag and literal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4210&quot;&gt;#4210&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/da3336c&quot;&gt;da3336c&lt;/a&gt; Update: Rules should get &lt;code&gt;sourceType&lt;/code&gt; from Program node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4960&quot;&gt;#4960&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a2ac359&quot;&gt;a2ac359&lt;/a&gt; Update: Make jsx-quotes fixable (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4377&quot;&gt;#4377&lt;/a&gt;) (Gabriele Petronella)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/700b8bc&quot;&gt;700b8bc&lt;/a&gt; Update: Add “allow” option to allow specific operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3308&quot;&gt;#3308&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d82eeb1&quot;&gt;d82eeb1&lt;/a&gt; Update: Add describe around rule tester blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4907&quot;&gt;#4907&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2967402&quot;&gt;2967402&lt;/a&gt; Update: Add minimum value to integer values in schema (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4941&quot;&gt;#4941&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b1360da&quot;&gt;b1360da&lt;/a&gt; Update: Support multiLine and singleLine options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4697&quot;&gt;#4697&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d487013&quot;&gt;d487013&lt;/a&gt; Update: Option to allow extra parens for cond assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3317&quot;&gt;#3317&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c2dee27&quot;&gt;c2dee27&lt;/a&gt; Update: Add module tests to no-extra-semi (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4915&quot;&gt;#4915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5a633bf&quot;&gt;5a633bf&lt;/a&gt; Update: Add &lt;code&gt;preferType&lt;/code&gt; option to &lt;code&gt;valid-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3056&quot;&gt;#3056&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/186e8f0&quot;&gt;186e8f0&lt;/a&gt; Update: Ignore camelcase in object destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3185&quot;&gt;#3185&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1569695&quot;&gt;1569695&lt;/a&gt; Update: Adds default ‘that’ for consistent-this (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4833&quot;&gt;#4833&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82d4cd9&quot;&gt;82d4cd9&lt;/a&gt; Update: Add atomtest env (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4848&quot;&gt;#4848&lt;/a&gt;) (Andres Suarez)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c9beb5&quot;&gt;9c9beb5&lt;/a&gt; Update: Add “ignore” override for operator-linebreak (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4294&quot;&gt;#4294&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c03abc&quot;&gt;9c03abc&lt;/a&gt; Update: Add “allowCall” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4011&quot;&gt;#4011&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1288ba4&quot;&gt;1288ba4&lt;/a&gt; Update: Add default limit to &lt;code&gt;complexity&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4808&quot;&gt;#4808&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5050768&quot;&gt;5050768&lt;/a&gt; Update: Ask for &lt;code&gt;commonjs&lt;/code&gt; under config init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3553&quot;&gt;#3553&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ea6b36&quot;&gt;9ea6b36&lt;/a&gt; Update: Ignore case in jsdoc tags (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4576&quot;&gt;#4576&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4931f56&quot;&gt;4931f56&lt;/a&gt; Update: optionally allow bitwise operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4742&quot;&gt;#4742&lt;/a&gt;) (Swaagie)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add “safe” mode to strict (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3306&quot;&gt;#3306&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Add cwd option for cli-engine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4472&quot;&gt;#4472&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: Allow to omit semi for one-line blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4385&quot;&gt;#4385&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: configuration for classes in space-before-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4089&quot;&gt;#4089&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for semi-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3829&quot;&gt;#3829&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: option to ignore top-level max statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4309&quot;&gt;#4309&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-use-before-define&lt;/code&gt; checks invalid initializer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4280&quot;&gt;#4280&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add class body support to &lt;code&gt;indent&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4372&quot;&gt;#4372&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add ‘method’ option to no-empty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4605&quot;&gt;#4605&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: Option to ignore constructor Fns object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4487&quot;&gt;#4487&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: add class option to &lt;code&gt;no-use-before-define&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3944&quot;&gt;#3944&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: allowAfterThis option in no-underscore-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3435&quot;&gt;#3435&lt;/a&gt;) (just-boris)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;prefer-const&lt;/code&gt; begins to cover separating init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4474&quot;&gt;#4474&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b8fbaa0&quot;&gt;b8fbaa0&lt;/a&gt; Fix: multiple message in TAP formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4975&quot;&gt;#4975&lt;/a&gt;) (Simon Degraeve)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/990f8da&quot;&gt;990f8da&lt;/a&gt; Fix: &lt;code&gt;getNodeByRangeIndex&lt;/code&gt; performance issue (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4989&quot;&gt;#4989&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5cd5429&quot;&gt;5cd5429&lt;/a&gt; Fix: function expression doc in call expression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4964&quot;&gt;#4964&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4173baa&quot;&gt;4173baa&lt;/a&gt; Fix: &lt;code&gt;no-dupe-class-members&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4981&quot;&gt;#4981&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ee1014d&quot;&gt;ee1014d&lt;/a&gt; Fix: Incorrect error location for object-curly-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4957&quot;&gt;#4957&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b52ed17&quot;&gt;b52ed17&lt;/a&gt; Fix: Incorrect error location for space-in-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4956&quot;&gt;#4956&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c1bafb&quot;&gt;9c1bafb&lt;/a&gt; Fix: Columns of parse errors are off by 1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4896&quot;&gt;#4896&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/86e6e57&quot;&gt;86e6e57&lt;/a&gt; Fix: Incorrect error at EOF for no-multiple-empty-lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4917&quot;&gt;#4917&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7f058f3&quot;&gt;7f058f3&lt;/a&gt; Fix: Incorrect location for padded-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4913&quot;&gt;#4913&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b3de8f7&quot;&gt;b3de8f7&lt;/a&gt; Fix: Do not show ignore messages for default ignored files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4931&quot;&gt;#4931&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0f469b4&quot;&gt;0f469b4&lt;/a&gt; Fix: JSDoc for function expression on object property (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4900&quot;&gt;#4900&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c4c4139&quot;&gt;c4c4139&lt;/a&gt; Fix: global-require no longer warns if require is shadowed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4812&quot;&gt;#4812&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8cfd56&quot;&gt;a8cfd56&lt;/a&gt; Fix: remove duplicate of eslint-config-eslint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4909&quot;&gt;#4909&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c275b41&quot;&gt;c275b41&lt;/a&gt; Fix: no-extra-parens ExpressionStatement restricted prods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4902&quot;&gt;#4902&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5e06f8&quot;&gt;e5e06f8&lt;/a&gt; Fix: Jsdoc comment for multi-line function expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4889&quot;&gt;#4889&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c9be60&quot;&gt;7c9be60&lt;/a&gt; Fix: Fix path errors in windows (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4888&quot;&gt;#4888&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1840e7&quot;&gt;a1840e7&lt;/a&gt; Fix: gray text was invisible on Solarized Dark theme (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4886&quot;&gt;#4886&lt;/a&gt;) (Jack Leigh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/688f277&quot;&gt;688f277&lt;/a&gt; Fix: Set proper exit code for Node &amp;gt; 0.10 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4691&quot;&gt;#4691&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58715e9&quot;&gt;58715e9&lt;/a&gt; Fix: Use single quotes in context.report messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4845&quot;&gt;#4845&lt;/a&gt;) (Joe Lencioni)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b7586b&quot;&gt;5b7586b&lt;/a&gt; Fix: do not require a @return tag for @interface (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4860&quot;&gt;#4860&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3e8179&quot;&gt;d3e8179&lt;/a&gt; Fix: env is rewritten by modules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4814&quot;&gt;#4814&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/315f272&quot;&gt;315f272&lt;/a&gt; Fix: Change max-warnings type to Int (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4660&quot;&gt;#4660&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f500d7d&quot;&gt;f500d7d&lt;/a&gt; Fix: allow extending @scope/eslint/file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4800&quot;&gt;#4800&lt;/a&gt;) (André Cruz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9bcbaf&quot;&gt;b9bcbaf&lt;/a&gt; Fix: Bug in no-extra-bind (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4806&quot;&gt;#4806&lt;/a&gt;) (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acdda24&quot;&gt;acdda24&lt;/a&gt; Fix: ignore argument parens in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4658&quot;&gt;#4658&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-invalid-this&lt;/code&gt; allows this in static method (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4669&quot;&gt;#4669&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Add source property for fatal errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3325&quot;&gt;#3325&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: always-multiline for comma-dangle import (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4704&quot;&gt;#4704&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Apply environment configs last (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3915&quot;&gt;#3915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Backtick behavior in quotes rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3090&quot;&gt;#3090&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Check 1tbs non-block else (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4692&quot;&gt;#4692&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Comma first issue in &lt;code&gt;indent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4739&quot;&gt;#4739&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3456&quot;&gt;#3456&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Empty schemas forbid any options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4789&quot;&gt;#4789&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: ensure &lt;code&gt;ConfigOps.merge&lt;/code&gt; do a deep copy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4682&quot;&gt;#4682&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Export class syntax for &lt;code&gt;require-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4667&quot;&gt;#4667&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Handle getters and setters in key-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4792&quot;&gt;#4792&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-constant-condition false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4737&quot;&gt;#4737&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: ObjectRestSpread throws error in key-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4763&quot;&gt;#4763&lt;/a&gt;) (Ziad El Khoury Hanna)&lt;/li&gt;
&lt;li&gt;Fix: Remove &lt;code&gt;isMarkedAsUsed&lt;/code&gt; function name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4783&quot;&gt;#4783&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Remove path analysis from debug log (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4631&quot;&gt;#4631&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Fix: RuleTester to show parsing errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4779&quot;&gt;#4779&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Set null to property ruleId when fatal is true (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4722&quot;&gt;#4722&lt;/a&gt;) (Sébastien Règne)&lt;/li&gt;
&lt;li&gt;Fix: small typos in code examples (Plusb Preco)&lt;/li&gt;
&lt;li&gt;Fix: support arrow functions in no-return-assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4743&quot;&gt;#4743&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Update rule tests for parser options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4673&quot;&gt;#4673&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: max-len rule overestimates the width of some tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4661&quot;&gt;#4661&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;Fix: Use oneValuePerFlag for --ignore-pattern option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;Fix: Handle forbidden LineTerminators in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4229&quot;&gt;#4229&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Check YieldExpression argument in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4608&quot;&gt;#4608&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Do not cache &lt;code&gt;package.json&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4611&quot;&gt;#4611&lt;/a&gt;) (Spain)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;consistent-return&lt;/code&gt; checks the last (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3373&quot;&gt;#3373&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unreachable&lt;/code&gt; with the code path (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3939&quot;&gt;#3939&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-this-before-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-fallthrough&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;constructor-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Adding options unit tests for --ignore-pattern (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-eval&lt;/code&gt; come to catch indirect eval (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4399&quot;&gt;#4399&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4441&quot;&gt;#4441&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3fa834f&quot;&gt;3fa834f&lt;/a&gt; Docs: Fix formatter links (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5006&quot;&gt;#5006&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/54b1bc8&quot;&gt;54b1bc8&lt;/a&gt; Docs: Fix link in &lt;a href=&quot;http://strict.md/&quot;&gt;strict.md&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5026&quot;&gt;#5026&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/69f149d&quot;&gt;69f149d&lt;/a&gt; Docs: language tweaks (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6ac2e01&quot;&gt;6ac2e01&lt;/a&gt; Docs: Fix description of exported comment (Mickael Jeanroy)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ba11c1b&quot;&gt;ba11c1b&lt;/a&gt; Docs: Add Algolia as sponsor to README (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a456077&quot;&gt;a456077&lt;/a&gt; Docs: newline-after-var doesn’t allow invalid options. (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82fbe09&quot;&gt;82fbe09&lt;/a&gt; Docs: Small semantic issue in documentation example (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4937&quot;&gt;#4937&lt;/a&gt;) (Marcelo Zarate)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/13a4e30&quot;&gt;13a4e30&lt;/a&gt; Docs: Formatting inconsistencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4912&quot;&gt;#4912&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2d626a3&quot;&gt;2d626a3&lt;/a&gt; Docs: Fix typo in changelog (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6390862&quot;&gt;6390862&lt;/a&gt; Docs: Fix missing footnote (Yoshiya Hinosawa)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc9f528&quot;&gt;fc9f528&lt;/a&gt; Docs: Modify unnecessary flag docs in quote-props (Matija Marohnić)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b3c01e&quot;&gt;0b3c01e&lt;/a&gt; Docs: Specify default for func-style (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4834&quot;&gt;#4834&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/008ea39&quot;&gt;008ea39&lt;/a&gt; Docs: Document default for operator assignment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4835&quot;&gt;#4835&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b566f56&quot;&gt;b566f56&lt;/a&gt; Docs: no-new-func typo (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7b28b7&quot;&gt;f7b28b7&lt;/a&gt; Docs: clarify &lt;code&gt;requireReturn&lt;/code&gt; option for valid-jsdoc rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4859&quot;&gt;#4859&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29516f1&quot;&gt;29516f1&lt;/a&gt; Docs: fix migration guide for no-arrow-condition rule (Peter Newnham)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ef7549&quot;&gt;2ef7549&lt;/a&gt; Docs: clarify remedy to some prefer-const errors (Turadg Aleahmad)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd72aba&quot;&gt;fd72aba&lt;/a&gt; Docs: Example fix for &lt;code&gt;no-extra-parens&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3527&quot;&gt;#3527&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/246a6d2&quot;&gt;246a6d2&lt;/a&gt; Docs: Documentation fix (Andres Kalle)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add license header to Working with Rules guide (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add section on file extensions to user-guide/configuring (adam)&lt;/li&gt;
&lt;li&gt;Docs: Escape underscores in no-path-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: fix typos, suggests (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: RuleTester doesn’t require any tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4681&quot;&gt;#4681&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in generator-star (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4756&quot;&gt;#4756&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-useless-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typos in space-before-keywords and space-unary-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4771&quot;&gt;#4771&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: writing mistake (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: no-extra-semi no longer refers to deprecated rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4598&quot;&gt;#4598&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Docs: Update docs/rules/no-plusplus.md (Xiangyun Chi)&lt;/li&gt;
&lt;li&gt;Docs: Add Code of Conduct (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3095&quot;&gt;#3095&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e0c5cf7&quot;&gt;e0c5cf7&lt;/a&gt; Upgrade: Espree to 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/5018&quot;&gt;#5018&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7457a4e&quot;&gt;7457a4e&lt;/a&gt; Upgrade: glob to 6.x (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4991&quot;&gt;#4991&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7b632f8&quot;&gt;7b632f8&lt;/a&gt; Upgrade: Globals to ^8.18.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4728&quot;&gt;#4728&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c97201&quot;&gt;7c97201&lt;/a&gt; Upgrade: doctrine version to 1.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4854&quot;&gt;#4854&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/871f534&quot;&gt;871f534&lt;/a&gt; Upgrade: Optionator version to 0.8.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4851&quot;&gt;#4851&lt;/a&gt;) (Eric Johnson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: beefy to ^2.0.0, fixes installation errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4760&quot;&gt;#4760&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Handlebars to &amp;gt;= 4.0.5 for security reasons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4642&quot;&gt;#4642&lt;/a&gt;) (Jacques Favreau)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.2)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3f4bdd&quot;&gt;d3f4bdd&lt;/a&gt; Build: Cleanup for code coverage (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4983&quot;&gt;#4983&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/8ac1dac&quot;&gt;8ac1dac&lt;/a&gt; Build: Update markdownlint dependency to 0.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4988&quot;&gt;#4988&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1fc80e9&quot;&gt;1fc80e9&lt;/a&gt; Build: Increment eslint-config-eslint (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ebd01b7&quot;&gt;ebd01b7&lt;/a&gt; Build: Fix version number on release (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4921&quot;&gt;#4921&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c70d84&quot;&gt;6c70d84&lt;/a&gt; Build: Fix prerelease script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4919&quot;&gt;#4919&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3906481&quot;&gt;3906481&lt;/a&gt; Build: Add AppVeyor CI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4894&quot;&gt;#4894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/407f329&quot;&gt;407f329&lt;/a&gt; Build: Fix prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Build-Related (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Consume no-underscore-dangle allowAfterThis option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4599&quot;&gt;#4599&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.0.0-beta.1 released</title>
    <link href="https://eslint.org/blog/2016/01/eslint-v2.0.0-beta.1-released/"/>
    <updated>2016-01-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2016/01/eslint-v2.0.0-beta.1-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by &lt;a href=&quot;https://github.com/eslint/eslint/issues/new?body=I%27m%20using%20ESLint%20v2.0.0-alpha-2%20and%20I%20(have%20some%20feedback%7Cfound%20a%20bug).%20I%20used%20this%20code%0A%0A(include%20full%20code)%0A%0Aand%20this%20configuration%0A%0A(include%20full%20configuration)%0A%0AAnd%20got%20this%20output%3A%0A%0A(include%20full%20ESLint%20output)%0A%0AI%20expected%20this%20instead%3A%0A%0A(describe%20what%20you%20thought%20should%20happen%20or%20what%20you%27d%20like%20to%20happen)&quot;&gt;creating issues&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@2.0.0-beta.1 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;code-path-analysis&quot; tabindex=&quot;-1&quot;&gt;Code Path Analysis&lt;/h3&gt;
&lt;p&gt;ESLint v2.0.0 formally introduces &lt;a href=&quot;https://eslint.org/docs/2.0.0/developer-guide/code-path-analysis.html&quot;&gt;code path analysis&lt;/a&gt;. While we’ve tried to make best guesses at how execution flowed through code, there were several instances where we just couldn’t get everything correct. For instance, trying to guarantee that every code path contained a &lt;code&gt;return&lt;/code&gt; statement. Fully implementing code path analysis means that we (and you, through custom rules) can now correctly understand how execution is proceeding through code. Several rules have been updated to make use of code path analysis, fixing some longtime bugs in existing rules. As a result, ESLint is even better at picking up certain types of errors.&lt;/p&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h3 id=&quot;configuration-cascading-changes&quot; tabindex=&quot;-1&quot;&gt;Configuration Cascading Changes&lt;/h3&gt;
&lt;p&gt;Prior to 2.0.0, if a directory contained both an &lt;code&gt;.eslintrc&lt;/code&gt; file and a &lt;code&gt;package.json&lt;/code&gt; file with ESLint configuration information, the settings from the two files would be merged together. In 2.0.0, only the settings from the &lt;code&gt;.eslintrc.*&lt;/code&gt; file are used and the ones in &lt;code&gt;package.json&lt;/code&gt; are ignored when both are present. Otherwise, &lt;code&gt;package.json&lt;/code&gt; can still be used with ESLint configuration, but only if no other &lt;code&gt;.eslintrc.*&lt;/code&gt; files are present.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;language-options&quot; tabindex=&quot;-1&quot;&gt;Language Options&lt;/h3&gt;
&lt;p&gt;Prior to 2.0.0, the way to enable language options was by using &lt;code&gt;ecmaFeatures&lt;/code&gt; in your configuration. In 2.0.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures&lt;/code&gt; property is now under a top-level &lt;code&gt;parserOptions&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;All ECMAScript 6 &lt;code&gt;ecmaFeatures&lt;/code&gt; flags have been removed in favor of a &lt;code&gt;ecmaVersion&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; that can be set to 3, 5 (default), or 6.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures.modules&lt;/code&gt; flag has been replaced by a &lt;code&gt;sourceType&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; which can be set to &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt; (default) or &lt;code&gt;&amp;quot;module&amp;quot;&lt;/code&gt; for ES6 modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;built-in-global-variables&quot; tabindex=&quot;-1&quot;&gt;Built-In Global Variables&lt;/h3&gt;
&lt;p&gt;Prior to 2.0.0, new global variables that were standardized as part of ES6 such as &lt;code&gt;Promise&lt;/code&gt;, &lt;code&gt;Map&lt;/code&gt;, &lt;code&gt;Set&lt;/code&gt;, and &lt;code&gt;Symbol&lt;/code&gt; were included in the built-in global environment. This could lead to potential issues when, for example, &lt;code&gt;no-undef&lt;/code&gt; permitted use of the &lt;code&gt;Promise&lt;/code&gt; constructor even in ES5 code where promises are unavailable. In 2.0.0, the built-in environment only includes the standard ES5 global variables, and the new ES6 global variables have been moved to the &lt;code&gt;es6&lt;/code&gt; environment.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;removing-no-arrow-condition%2C-adding-no-confusing-arrow&quot; tabindex=&quot;-1&quot;&gt;Removing &lt;code&gt;no-arrow-condition&lt;/code&gt;, Adding &lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;In looking at our rules, we discovered that &lt;code&gt;no-arrow-condition&lt;/code&gt; actually overlapped with &lt;code&gt;no-constant-condition&lt;/code&gt;, so we have removed &lt;code&gt;no-arrow-condition&lt;/code&gt; as a core rule. The &lt;code&gt;no-constant-condition&lt;/code&gt; will pick up the same errors as &lt;code&gt;no-arrow-condition&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There was an additional condition that had been part of &lt;code&gt;no-arrow-condition&lt;/code&gt; incorrectly, which checked for the use of arrow functions in conditional expressions. This functionality is now in the &lt;code&gt;no-confusing-arrow&lt;/code&gt; rule.&lt;/p&gt;
&lt;h3 id=&quot;new-visual-studio-formatter&quot; tabindex=&quot;-1&quot;&gt;New Visual Studio Formatter&lt;/h3&gt;
&lt;p&gt;We’ve added a new formatter called &lt;code&gt;visualstudio&lt;/code&gt;, which formats the results into a format that Visual Studio understands. If you use Visual Studio with ESLint, this new formatter makes the console output interactive, so you can click on a warning and be taken straight to the location in the file.&lt;/p&gt;
&lt;h3 id=&quot;.eslintignore-changes&quot; tabindex=&quot;-1&quot;&gt;.eslintignore Changes&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;.eslintignore&lt;/code&gt; file now works the same &lt;code&gt;.gitignore&lt;/code&gt;. This was a long-standing ask from our users that we’ve finally been able to merge. If you hadn’t noticed any difference between the syntax of &lt;code&gt;.eslintignore&lt;/code&gt; and &lt;code&gt;.gitignore&lt;/code&gt;, then you likely won’t notice any difference with this change. The end result is that you can use &lt;code&gt;.gitignore&lt;/code&gt; syntax in &lt;code&gt;.eslintignore&lt;/code&gt; (which also means you can use your &lt;code&gt;.gitignore&lt;/code&gt; directly as an ignore file for ESLint).&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/keyword-spacing&quot;&gt;&lt;code&gt;keyword-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-confusing-arrow&quot;&gt;&lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-implicit-globals&quot;&gt;&lt;code&gt;no-implicit-globals&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-new-symbol&quot;&gt;&lt;code&gt;no-new-symbol&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-unmodified-loop-condition&quot;&gt;&lt;code&gt;no-unmodified-loop-condition&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-useless-constructor&quot;&gt;&lt;code&gt;no-useless-constructor&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-whitespace-before-property&quot;&gt;&lt;code&gt;no-whitespace-before-property&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/prefer-rest-params&quot;&gt;&lt;code&gt;prefer-rest-params&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/sort-imports&quot;&gt;&lt;code&gt;sort-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/yield-star-spacing&quot;&gt;&lt;code&gt;yield-star-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/19a9fbb&quot;&gt;19a9fbb&lt;/a&gt; Breaking: &lt;code&gt;space-before-blocks&lt;/code&gt; ignores after keywords (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1338&quot;&gt;#1338&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b795850&quot;&gt;b795850&lt;/a&gt; Breaking: don’t load ~/.eslintrc when using --config flag (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4881&quot;&gt;#4881&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e2f2b66&quot;&gt;e2f2b66&lt;/a&gt; Breaking: Remove defaults from &lt;code&gt;eslint:recommended&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4809&quot;&gt;#4809&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d43f26c&quot;&gt;d43f26c&lt;/a&gt; Breaking: migrate from minimatch to node-ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2365&quot;&gt;#2365&lt;/a&gt;) (Stefan Grönke)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c07ca39&quot;&gt;c07ca39&lt;/a&gt; Breaking: merges keyword spacing rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3869&quot;&gt;#3869&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: deprecate &lt;code&gt;no-arrow-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Correct links between variables and references (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4615&quot;&gt;#4615&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement parserOptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4641&quot;&gt;#4641&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove space-after-keyword newline check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4149&quot;&gt;#4149&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Treat package.json like the rest of configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4451&quot;&gt;#4451&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove autofix from eqeqeq (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4578&quot;&gt;#4578&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove ES6 global variables from builtins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4085&quot;&gt;#4085&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Simplify rule schemas (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3625&quot;&gt;#3625&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: added bower_components to default ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3550&quot;&gt;#3550&lt;/a&gt;) (Julian Laval)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to Espree 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4334&quot;&gt;#4334&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Freeze context object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4495&quot;&gt;#4495&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove warnings of readonly from &lt;code&gt;no-undef&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4504&quot;&gt;#4504&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement yield-star-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4115&quot;&gt;#4115&lt;/a&gt;) (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Breaking: Default no-magic-numbers to none. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4193&quot;&gt;#4193&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Breaking: Allow empty arrow body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4411&quot;&gt;#4411&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d5c9435&quot;&gt;d5c9435&lt;/a&gt; New: ‘sort-imports’ rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3143&quot;&gt;#3143&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/ceaf324&quot;&gt;ceaf324&lt;/a&gt; New: Add no-new-symbol rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4862&quot;&gt;#4862&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4665256&quot;&gt;4665256&lt;/a&gt; New: Add no-whitespace-before-property rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1086&quot;&gt;#1086&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5ab564e&quot;&gt;5ab564e&lt;/a&gt; New: ‘ignoreArrayIndexes’ option for ‘no-magic-numbers’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4370&quot;&gt;#4370&lt;/a&gt;) (Christian Schuller)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/97cdb95&quot;&gt;97cdb95&lt;/a&gt; New: Add no-useless-constructor rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4785&quot;&gt;#4785&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;no-unmodified-loop-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4523&quot;&gt;#4523&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add a comment length option to the max-len rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4665&quot;&gt;#4665&lt;/a&gt;) (Ian)&lt;/li&gt;
&lt;li&gt;New: Add greasemonkey environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4715&quot;&gt;#4715&lt;/a&gt;) (silverwind)&lt;/li&gt;
&lt;li&gt;New: Add no-confusing-arrow rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;li&gt;New: Visual Studio compatible formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4708&quot;&gt;#4708&lt;/a&gt;) (rhpijnacker)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add no-implicit-globals rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4542&quot;&gt;#4542&lt;/a&gt;) (Joshua Peek)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;array-callback-return&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1128&quot;&gt;#1128&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add no-restricted-imports rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3196&quot;&gt;#3196&lt;/a&gt;) (Guy Ellis)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-rest-params&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4108&quot;&gt;#4108&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Code Path Analysis (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/186e8f0&quot;&gt;186e8f0&lt;/a&gt; Update: Ignore camelcase in object destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3185&quot;&gt;#3185&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1569695&quot;&gt;1569695&lt;/a&gt; Update: Adds default ‘that’ for consistent-this (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4833&quot;&gt;#4833&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/82d4cd9&quot;&gt;82d4cd9&lt;/a&gt; Update: Add atomtest env (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4848&quot;&gt;#4848&lt;/a&gt;) (Andres Suarez)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c9beb5&quot;&gt;9c9beb5&lt;/a&gt; Update: Add “ignore” override for operator-linebreak (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4294&quot;&gt;#4294&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9c03abc&quot;&gt;9c03abc&lt;/a&gt; Update: Add “allowCall” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4011&quot;&gt;#4011&lt;/a&gt;) (Rajendra Patil)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/1288ba4&quot;&gt;1288ba4&lt;/a&gt; Update: Add default limit to &lt;code&gt;complexity&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4808&quot;&gt;#4808&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5050768&quot;&gt;5050768&lt;/a&gt; Update: Ask for &lt;code&gt;commonjs&lt;/code&gt; under config init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3553&quot;&gt;#3553&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/9ea6b36&quot;&gt;9ea6b36&lt;/a&gt; Update: Ignore case in jsdoc tags (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4576&quot;&gt;#4576&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/4931f56&quot;&gt;4931f56&lt;/a&gt; Update: optionally allow bitwise operators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4742&quot;&gt;#4742&lt;/a&gt;) (Swaagie)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add “safe” mode to strict (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3306&quot;&gt;#3306&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Add cwd option for cli-engine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4472&quot;&gt;#4472&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: Allow to omit semi for one-line blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4385&quot;&gt;#4385&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: configuration for classes in space-before-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4089&quot;&gt;#4089&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for semi-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3829&quot;&gt;#3829&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: option to ignore top-level max statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4309&quot;&gt;#4309&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-use-before-define&lt;/code&gt; checks invalid initializer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4280&quot;&gt;#4280&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add class body support to &lt;code&gt;indent&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4372&quot;&gt;#4372&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add ‘method’ option to no-empty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4605&quot;&gt;#4605&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: Option to ignore constructor Fns object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4487&quot;&gt;#4487&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: add class option to &lt;code&gt;no-use-before-define&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3944&quot;&gt;#3944&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: allowAfterThis option in no-underscore-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3435&quot;&gt;#3435&lt;/a&gt;) (just-boris)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;prefer-const&lt;/code&gt; begins to cover separating init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4474&quot;&gt;#4474&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a8cfd56&quot;&gt;a8cfd56&lt;/a&gt; Fix: remove duplicate of eslint-config-eslint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4909&quot;&gt;#4909&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/c275b41&quot;&gt;c275b41&lt;/a&gt; Fix: no-extra-parens ExpressionStatement restricted prods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4902&quot;&gt;#4902&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/e5e06f8&quot;&gt;e5e06f8&lt;/a&gt; Fix: Jsdoc comment for multi-line function expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4889&quot;&gt;#4889&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c9be60&quot;&gt;7c9be60&lt;/a&gt; Fix: Fix path errors in windows (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4888&quot;&gt;#4888&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/a1840e7&quot;&gt;a1840e7&lt;/a&gt; Fix: gray text was invisible on Solarized Dark theme (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4886&quot;&gt;#4886&lt;/a&gt;) (Jack Leigh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/688f277&quot;&gt;688f277&lt;/a&gt; Fix: Set proper exit code for Node &amp;gt; 0.10 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4691&quot;&gt;#4691&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/58715e9&quot;&gt;58715e9&lt;/a&gt; Fix: Use single quotes in context.report messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4845&quot;&gt;#4845&lt;/a&gt;) (Joe Lencioni)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/5b7586b&quot;&gt;5b7586b&lt;/a&gt; Fix: do not require a @return tag for @interface (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4860&quot;&gt;#4860&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/d3e8179&quot;&gt;d3e8179&lt;/a&gt; Fix: env is rewritten by modules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4814&quot;&gt;#4814&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/315f272&quot;&gt;315f272&lt;/a&gt; Fix: Change max-warnings type to Int (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4660&quot;&gt;#4660&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f500d7d&quot;&gt;f500d7d&lt;/a&gt; Fix: allow extending @scope/eslint/file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4800&quot;&gt;#4800&lt;/a&gt;) (André Cruz)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b9bcbaf&quot;&gt;b9bcbaf&lt;/a&gt; Fix: Bug in no-extra-bind (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4806&quot;&gt;#4806&lt;/a&gt;) (Andres Kalle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/acdda24&quot;&gt;acdda24&lt;/a&gt; Fix: ignore argument parens in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4658&quot;&gt;#4658&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-invalid-this&lt;/code&gt; allows this in static method (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4669&quot;&gt;#4669&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Add source property for fatal errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3325&quot;&gt;#3325&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: always-multiline for comma-dangle import (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4704&quot;&gt;#4704&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Apply environment configs last (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3915&quot;&gt;#3915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Backtick behavior in quotes rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3090&quot;&gt;#3090&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Check 1tbs non-block else (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4692&quot;&gt;#4692&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Comma first issue in &lt;code&gt;indent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4739&quot;&gt;#4739&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3456&quot;&gt;#3456&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Empty schemas forbid any options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4789&quot;&gt;#4789&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: ensure &lt;code&gt;ConfigOps.merge&lt;/code&gt; do a deep copy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4682&quot;&gt;#4682&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Export class syntax for &lt;code&gt;require-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4667&quot;&gt;#4667&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Handle getters and setters in key-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4792&quot;&gt;#4792&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-constant-condition false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4737&quot;&gt;#4737&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: ObjectRestSpread throws error in key-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4763&quot;&gt;#4763&lt;/a&gt;) (Ziad El Khoury Hanna)&lt;/li&gt;
&lt;li&gt;Fix: Remove &lt;code&gt;isMarkedAsUsed&lt;/code&gt; function name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4783&quot;&gt;#4783&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Remove path analysis from debug log (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4631&quot;&gt;#4631&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Fix: RuleTester to show parsing errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4779&quot;&gt;#4779&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Set null to property ruleId when fatal is true (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4722&quot;&gt;#4722&lt;/a&gt;) (Sébastien Règne)&lt;/li&gt;
&lt;li&gt;Fix: small typos in code examples (Plusb Preco)&lt;/li&gt;
&lt;li&gt;Fix: support arrow functions in no-return-assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4743&quot;&gt;#4743&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Update rule tests for parser options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4673&quot;&gt;#4673&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: max-len rule overestimates the width of some tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4661&quot;&gt;#4661&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;Fix: Use oneValuePerFlag for --ignore-pattern option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;Fix: Handle forbidden LineTerminators in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4229&quot;&gt;#4229&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Check YieldExpression argument in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4608&quot;&gt;#4608&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Do not cache &lt;code&gt;package.json&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4611&quot;&gt;#4611&lt;/a&gt;) (Spain)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;consistent-return&lt;/code&gt; checks the last (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3373&quot;&gt;#3373&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unreachable&lt;/code&gt; with the code path (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3939&quot;&gt;#3939&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-this-before-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-fallthrough&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;constructor-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Adding options unit tests for --ignore-pattern (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-eval&lt;/code&gt; come to catch indirect eval (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4399&quot;&gt;#4399&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4441&quot;&gt;#4441&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6390862&quot;&gt;6390862&lt;/a&gt; Docs: Fix missing footnote (Yoshiya Hinosawa)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fc9f528&quot;&gt;fc9f528&lt;/a&gt; Docs: Modify unnecessary flag docs in quote-props (Matija Marohnić)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/0b3c01e&quot;&gt;0b3c01e&lt;/a&gt; Docs: Specify default for func-style (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4834&quot;&gt;#4834&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/008ea39&quot;&gt;008ea39&lt;/a&gt; Docs: Document default for operator assignment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4835&quot;&gt;#4835&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/b566f56&quot;&gt;b566f56&lt;/a&gt; Docs: no-new-func typo (alberto)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/f7b28b7&quot;&gt;f7b28b7&lt;/a&gt; Docs: clarify &lt;code&gt;requireReturn&lt;/code&gt; option for valid-jsdoc rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4859&quot;&gt;#4859&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/29516f1&quot;&gt;29516f1&lt;/a&gt; Docs: fix migration guide for no-arrow-condition rule (Peter Newnham)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/2ef7549&quot;&gt;2ef7549&lt;/a&gt; Docs: clarify remedy to some prefer-const errors (Turadg Aleahmad)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/fd72aba&quot;&gt;fd72aba&lt;/a&gt; Docs: Example fix for &lt;code&gt;no-extra-parens&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3527&quot;&gt;#3527&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/246a6d2&quot;&gt;246a6d2&lt;/a&gt; Docs: Documentation fix (Andres Kalle)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add license header to Working with Rules guide (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add section on file extensions to user-guide/configuring (adam)&lt;/li&gt;
&lt;li&gt;Docs: Escape underscores in no-path-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: fix typos, suggests (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: RuleTester doesn’t require any tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4681&quot;&gt;#4681&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in generator-star (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4756&quot;&gt;#4756&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-useless-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typos in space-before-keywords and space-unary-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4771&quot;&gt;#4771&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: writing mistake (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: no-extra-semi no longer refers to deprecated rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4598&quot;&gt;#4598&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Docs: Update docs/rules/no-plusplus.md (Xiangyun Chi)&lt;/li&gt;
&lt;li&gt;Docs: Add Code of Conduct (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3095&quot;&gt;#3095&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/7c97201&quot;&gt;7c97201&lt;/a&gt; Upgrade: doctrine version to 1.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4854&quot;&gt;#4854&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/871f534&quot;&gt;871f534&lt;/a&gt; Upgrade: Optionator version to 0.8.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4851&quot;&gt;#4851&lt;/a&gt;) (Eric Johnson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: beefy to ^2.0.0, fixes installation errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4760&quot;&gt;#4760&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Handlebars to &amp;gt;= 4.0.5 for security reasons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4642&quot;&gt;#4642&lt;/a&gt;) (Jacques Favreau)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-beta.1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-beta.1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/6c70d84&quot;&gt;6c70d84&lt;/a&gt; Build: Fix prerelease script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4919&quot;&gt;#4919&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/3906481&quot;&gt;3906481&lt;/a&gt; Build: Add AppVeyor CI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4894&quot;&gt;#4894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/commit/407f329&quot;&gt;407f329&lt;/a&gt; Build: Fix prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Build-Related (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Consume no-underscore-dangle allowAfterThis option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4599&quot;&gt;#4599&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.0.0-alpha-2 released</title>
    <link href="https://eslint.org/blog/2015/12/eslint-v2.0.0-alpha-2-released/"/>
    <updated>2015-12-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/12/eslint-v2.0.0-alpha-2-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by &lt;a href=&quot;https://github.com/eslint/eslint/issues/new?body=I%27m%20using%20ESLint%20v2.0.0-alpha-2%20and%20I%20(have%20some%20feedback%7Cfound%20a%20bug).%20I%20used%20this%20code%0A%0A(include%20full%20code)%0A%0Aand%20this%20configuration%0A%0A(include%20full%20configuration)%0A%0AAnd%20got%20this%20output%3A%0A%0A(include%20full%20ESLint%20output)%0A%0AI%20expected%20this%20instead%3A%0A%0A(describe%20what%20you%20thought%20should%20happen%20or%20what%20you%27d%20like%20to%20happen)&quot;&gt;creating issues&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@2.0.0-alpha-2 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;code-path-analysis&quot; tabindex=&quot;-1&quot;&gt;Code Path Analysis&lt;/h3&gt;
&lt;p&gt;ESLint v2.0.0 formally introduces &lt;a href=&quot;https://eslint.org/docs/2.0.0/developer-guide/code-path-analysis.html&quot;&gt;code path analysis&lt;/a&gt;. While we’ve tried to make best guesses at how execution flowed through code, there were several instances where we just couldn’t get everything correct. For instance, trying to guarantee that every code path contained a &lt;code&gt;return&lt;/code&gt; statement. Fully implementing code path analysis means that we (and you, through custom rules) can now correctly understand how execution is proceeding through code. Several rules have been updated to make use of code path analysis, fixing some longtime bugs in existing rules. As a result, ESLint is even better at picking up certain types of errors.&lt;/p&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h2 id=&quot;configuration-cascading-changes&quot; tabindex=&quot;-1&quot;&gt;Configuration Cascading Changes&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, if a directory contained both an &lt;code&gt;.eslintrc&lt;/code&gt; file and a &lt;code&gt;package.json&lt;/code&gt; file with ESLint configuration information, the settings from the two files would be merged together. In 2.0.0, only the settings from the &lt;code&gt;.eslintrc.*&lt;/code&gt; file are used and the ones in &lt;code&gt;package.json&lt;/code&gt; are ignored when both are present. Otherwise, &lt;code&gt;package.json&lt;/code&gt; can still be used with ESLint configuration, but only if no other &lt;code&gt;.eslintrc.*&lt;/code&gt; files are present.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;language-options&quot; tabindex=&quot;-1&quot;&gt;Language Options&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, the way to enable language options was by using &lt;code&gt;ecmaFeatures&lt;/code&gt; in your configuration. In 2.0.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures&lt;/code&gt; property is now under a top-level &lt;code&gt;parserOptions&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;All ECMAScript 6 &lt;code&gt;ecmaFeatures&lt;/code&gt; flags have been removed in favor of a &lt;code&gt;ecmaVersion&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; that can be set to 3, 5 (default), or 6.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures.modules&lt;/code&gt; flag has been replaced by a &lt;code&gt;sourceType&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; which can be set to &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt; (default) or &lt;code&gt;&amp;quot;module&amp;quot;&lt;/code&gt; for ES6 modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;built-in-global-variables&quot; tabindex=&quot;-1&quot;&gt;Built-In Global Variables&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, new global variables that were standardized as part of ES6 such as &lt;code&gt;Promise&lt;/code&gt;, &lt;code&gt;Map&lt;/code&gt;, &lt;code&gt;Set&lt;/code&gt;, and &lt;code&gt;Symbol&lt;/code&gt; were included in the built-in global environment. This could lead to potential issues when, for example, &lt;code&gt;no-undef&lt;/code&gt; permitted use of the &lt;code&gt;Promise&lt;/code&gt; constructor even in ES5 code where promises are unavailable. In 2.0.0, the built-in environment only includes the standard ES5 global variables, and the new ES6 global variables have been moved to the &lt;code&gt;es6&lt;/code&gt; environment.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;removing-no-arrow-condition%2C-adding-no-confusing-arrow&quot; tabindex=&quot;-1&quot;&gt;Removing &lt;code&gt;no-arrow-condition&lt;/code&gt;, Adding &lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;In looking at our rules, we discovered that &lt;code&gt;no-arrow-condition&lt;/code&gt; actually overlapped with &lt;code&gt;no-constant-condition&lt;/code&gt;, so we have removed &lt;code&gt;no-arrow-condition&lt;/code&gt; as a core rule. The &lt;code&gt;no-constant-condition&lt;/code&gt; will pick up the same errors as &lt;code&gt;no-arrow-condition&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There was an additional condition that had been part of &lt;code&gt;no-arrow-condition&lt;/code&gt; incorrectly, which checked for the use of arrow functions in conditional expressions. This functionality is now in the &lt;code&gt;no-confusing-arrow&lt;/code&gt; rule.&lt;/p&gt;
&lt;h2 id=&quot;new-visual-studio-formatter&quot; tabindex=&quot;-1&quot;&gt;New Visual Studio Formatter&lt;/h2&gt;
&lt;p&gt;We’ve added a new formatter called &lt;code&gt;visualstudio&lt;/code&gt;, which formats the results into a format that Visual Studio understands. If you use Visual Studio with ESLint, this new formatter makes the console output interactive, so you can click on a warning and be taken straight to the location in the file.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-implicit-globals&quot;&gt;&lt;code&gt;no-implicit-globals&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/prefer-rest-params&quot;&gt;&lt;code&gt;prefer-rest-params&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/yield-star-spacing&quot;&gt;&lt;code&gt;yield-star-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-unmodified-loop-condition&quot;&gt;&lt;code&gt;no-unmodified-loop-condition&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-confusing-arrow&quot;&gt;&lt;code&gt;no-confusing-arrow&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: deprecate &lt;code&gt;no-arrow-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Correct links between variables and references (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4615&quot;&gt;#4615&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement parserOptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4641&quot;&gt;#4641&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove space-after-keyword newline check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4149&quot;&gt;#4149&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Treat package.json like the rest of configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4451&quot;&gt;#4451&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove autofix from eqeqeq (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4578&quot;&gt;#4578&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove ES6 global variables from builtins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4085&quot;&gt;#4085&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Simplify rule schemas (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3625&quot;&gt;#3625&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: added bower_components to default ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3550&quot;&gt;#3550&lt;/a&gt;) (Julian Laval)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to Espree 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4334&quot;&gt;#4334&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Freeze context object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4495&quot;&gt;#4495&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove warnings of readonly from &lt;code&gt;no-undef&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4504&quot;&gt;#4504&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement yield-star-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4115&quot;&gt;#4115&lt;/a&gt;) (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Breaking: Default no-magic-numbers to none. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4193&quot;&gt;#4193&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Breaking: Allow empty arrow body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4411&quot;&gt;#4411&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;no-unmodified-loop-condition&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4523&quot;&gt;#4523&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add a comment length option to the max-len rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4665&quot;&gt;#4665&lt;/a&gt;) (Ian)&lt;/li&gt;
&lt;li&gt;New: Add greasemonkey environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4715&quot;&gt;#4715&lt;/a&gt;) (silverwind)&lt;/li&gt;
&lt;li&gt;New: Add no-confusing-arrow rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4417&quot;&gt;#4417&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;li&gt;New: Visual Studio compatible formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4708&quot;&gt;#4708&lt;/a&gt;) (rhpijnacker)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Features (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add no-implicit-globals rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4542&quot;&gt;#4542&lt;/a&gt;) (Joshua Peek)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;array-callback-return&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1128&quot;&gt;#1128&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add no-restricted-imports rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3196&quot;&gt;#3196&lt;/a&gt;) (Guy Ellis)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-rest-params&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4108&quot;&gt;#4108&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Code Path Analysis (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add “safe” mode to strict (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3306&quot;&gt;#3306&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Add cwd option for cli-engine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4472&quot;&gt;#4472&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: Allow to omit semi for one-line blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4385&quot;&gt;#4385&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: configuration for classes in space-before-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4089&quot;&gt;#4089&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for semi-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3829&quot;&gt;#3829&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: option to ignore top-level max statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4309&quot;&gt;#4309&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-use-before-define&lt;/code&gt; checks invalid initializer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4280&quot;&gt;#4280&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add class body support to &lt;code&gt;indent&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4372&quot;&gt;#4372&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add ‘method’ option to no-empty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4605&quot;&gt;#4605&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: Option to ignore constructor Fns object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4487&quot;&gt;#4487&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: add class option to &lt;code&gt;no-use-before-define&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3944&quot;&gt;#3944&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: allowAfterThis option in no-underscore-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3435&quot;&gt;#3435&lt;/a&gt;) (just-boris)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;prefer-const&lt;/code&gt; begins to cover separating init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4474&quot;&gt;#4474&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-invalid-this&lt;/code&gt; allows this in static method (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4669&quot;&gt;#4669&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Add source property for fatal errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3325&quot;&gt;#3325&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: always-multiline for comma-dangle import (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4704&quot;&gt;#4704&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Apply environment configs last (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3915&quot;&gt;#3915&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Backtick behavior in quotes rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3090&quot;&gt;#3090&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Check 1tbs non-block else (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4692&quot;&gt;#4692&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Comma first issue in &lt;code&gt;indent&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4739&quot;&gt;#4739&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3456&quot;&gt;#3456&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Empty schemas forbid any options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4789&quot;&gt;#4789&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: ensure &lt;code&gt;ConfigOps.merge&lt;/code&gt; do a deep copy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4682&quot;&gt;#4682&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Export class syntax for &lt;code&gt;require-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4667&quot;&gt;#4667&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Handle getters and setters in key-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4792&quot;&gt;#4792&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-constant-condition false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4737&quot;&gt;#4737&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: ObjectRestSpread throws error in key-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4763&quot;&gt;#4763&lt;/a&gt;) (Ziad El Khoury Hanna)&lt;/li&gt;
&lt;li&gt;Fix: Remove &lt;code&gt;isMarkedAsUsed&lt;/code&gt; function name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4783&quot;&gt;#4783&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Remove path analysis from debug log (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4631&quot;&gt;#4631&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Fix: RuleTester to show parsing errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4779&quot;&gt;#4779&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Set null to property ruleId when fatal is true (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4722&quot;&gt;#4722&lt;/a&gt;) (Sébastien Règne)&lt;/li&gt;
&lt;li&gt;Fix: small typos in code examples (Plusb Preco)&lt;/li&gt;
&lt;li&gt;Fix: support arrow functions in no-return-assign (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4743&quot;&gt;#4743&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Update rule tests for parser options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4673&quot;&gt;#4673&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: max-len rule overestimates the width of some tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4661&quot;&gt;#4661&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;Fix: Use oneValuePerFlag for --ignore-pattern option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;Fix: Handle forbidden LineTerminators in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4229&quot;&gt;#4229&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Check YieldExpression argument in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4608&quot;&gt;#4608&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Do not cache &lt;code&gt;package.json&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4611&quot;&gt;#4611&lt;/a&gt;) (Spain)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;consistent-return&lt;/code&gt; checks the last (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3373&quot;&gt;#3373&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unreachable&lt;/code&gt; with the code path (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3939&quot;&gt;#3939&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-this-before-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-fallthrough&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;constructor-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Adding options unit tests for --ignore-pattern (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-eval&lt;/code&gt; come to catch indirect eval (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4399&quot;&gt;#4399&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4441&quot;&gt;#4441&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add license header to Working with Rules guide (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add section on file extensions to user-guide/configuring (adam)&lt;/li&gt;
&lt;li&gt;Docs: Escape underscores in no-path-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: fix typos, suggests (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: RuleTester doesn’t require any tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4681&quot;&gt;#4681&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in generator-star (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-unexpected-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4756&quot;&gt;#4756&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typo in no-useless-concat (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Typos in space-before-keywords and space-unary-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4771&quot;&gt;#4771&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: writing mistake (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: no-extra-semi no longer refers to deprecated rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4598&quot;&gt;#4598&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Docs: Update docs/rules/no-plusplus.md (Xiangyun Chi)&lt;/li&gt;
&lt;li&gt;Docs: Add Code of Conduct (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3095&quot;&gt;#3095&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: beefy to ^2.0.0, fixes installation errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4760&quot;&gt;#4760&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Handlebars to &amp;gt;= 4.0.5 for security reasons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4642&quot;&gt;#4642&lt;/a&gt;) (Jacques Favreau)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-2)&quot; tabindex=&quot;-1&quot;&gt;Build-Related (v2.0.0-alpha-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add prerelease script (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(v2.0.0-alpha-1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (v2.0.0-alpha-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Consume no-underscore-dangle allowAfterThis option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4599&quot;&gt;#4599&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v2.0.0-alpha-1 released</title>
    <link href="https://eslint.org/blog/2015/12/eslint-v2.0.0-alpha-1-released/"/>
    <updated>2015-12-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/12/eslint-v2.0.0-alpha-1-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by &lt;a href=&quot;https://github.com/eslint/eslint/issues/new?body=I%27m%20using%20ESLint%20v2.0.0-alpha-1%20and%20I%20(have%20some%20feedback%7Cfound%20a%20bug).%20I%20used%20this%20code%0A%0A(include%20full%20code)%0A%0Aand%20this%20configuration%0A%0A(include%20full%20configuration)%0A%0AAnd%20got%20this%20output%3A%0A%0A(include%20full%20ESLint%20output)%0A%0AI%20expected%20this%20instead%3A%0A%0A(describe%20what%20you%20thought%20should%20happen%20or%20what%20you%27d%20like%20to%20happen)&quot;&gt;creating issues&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@2.0.0-alpha-1 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;code-path-analysis&quot; tabindex=&quot;-1&quot;&gt;Code Path Analysis&lt;/h3&gt;
&lt;p&gt;ESLint v2.0.0 formally introduces &lt;a href=&quot;https://eslint.org/docs/2.0.0/developer-guide/code-path-analysis.html&quot;&gt;code path analysis&lt;/a&gt;. While we’ve tried to make best guesses at how execution flowed through code, there were several instances where we just couldn’t get everything correct. For instance, trying to guarantee that every code path contained a &lt;code&gt;return&lt;/code&gt; statement. Fully implementing code path analysis means that we (and you, through custom rules) can now correctly understand how execution is proceeding through code. Several rules have been updated to make use of code path analysis, fixing some longtime bugs in existing rules. As a result, ESLint is even better at picking up certain types of errors.&lt;/p&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h2 id=&quot;configuration-cascading-changes&quot; tabindex=&quot;-1&quot;&gt;Configuration Cascading Changes&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, if a directory contained both an &lt;code&gt;.eslintrc&lt;/code&gt; file and a &lt;code&gt;package.json&lt;/code&gt; file with ESLint configuration information, the settings from the two files would be merged together. In 2.0.0, only the settings from the &lt;code&gt;.eslintrc.*&lt;/code&gt; file are used and the ones in &lt;code&gt;package.json&lt;/code&gt; are ignored when both are present. Otherwise, &lt;code&gt;package.json&lt;/code&gt; can still be used with ESLint configuration, but only if no other &lt;code&gt;.eslintrc.*&lt;/code&gt; files are present.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;language-options&quot; tabindex=&quot;-1&quot;&gt;Language Options&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, the way to enable language options was by using &lt;code&gt;ecmaFeatures&lt;/code&gt; in your configuration. In 2.0.0:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures&lt;/code&gt; property is now under a top-level &lt;code&gt;parserOptions&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;All ECMAScript 6 &lt;code&gt;ecmaFeatures&lt;/code&gt; flags have been removed in favor of a &lt;code&gt;ecmaVersion&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; that can be set to 3, 5 (default), or 6.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;ecmaFeatures.modules&lt;/code&gt; flag has been replaced by a &lt;code&gt;sourceType&lt;/code&gt; property under &lt;code&gt;parserOptions&lt;/code&gt; which can be set to &lt;code&gt;&amp;quot;script&amp;quot;&lt;/code&gt; (default) or &lt;code&gt;&amp;quot;module&amp;quot;&lt;/code&gt; for ES6 modules.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;built-in-global-variables&quot; tabindex=&quot;-1&quot;&gt;Built-In Global Variables&lt;/h2&gt;
&lt;p&gt;Prior to 2.0.0, new global variables that were standardized as part of ES6 such as &lt;code&gt;Promise&lt;/code&gt;, &lt;code&gt;Map&lt;/code&gt;, &lt;code&gt;Set&lt;/code&gt;, and &lt;code&gt;Symbol&lt;/code&gt; were included in the built-in global environment. This could lead to potential issues when, for example, &lt;code&gt;no-undef&lt;/code&gt; permitted use of the &lt;code&gt;Promise&lt;/code&gt; constructor even in ES5 code where promises are unavailable. In 2.0.0, the built-in environment only includes the standard ES5 global variables, and the new ES6 global variables have been moved to the &lt;code&gt;es6&lt;/code&gt; environment.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/2.0.0/user-guide/migrating-to-2.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/array-callback-return&quot;&gt;&lt;code&gt;array-callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-implicit-globals&quot;&gt;&lt;code&gt;no-implicit-globals&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/no-restricted-imports&quot;&gt;&lt;code&gt;no-restricted-imports&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/prefer-rest-params&quot;&gt;&lt;code&gt;prefer-rest-params&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/2.0.0/rules/yield-star-spacing&quot;&gt;&lt;code&gt;yield-star-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Correct links between variables and references (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4615&quot;&gt;#4615&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement parserOptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4641&quot;&gt;#4641&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove space-after-keyword newline check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4149&quot;&gt;#4149&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Treat package.json like the rest of configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4451&quot;&gt;#4451&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove autofix from eqeqeq (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4578&quot;&gt;#4578&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Breaking: Remove ES6 global variables from builtins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4085&quot;&gt;#4085&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Simplify rule schemas (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3625&quot;&gt;#3625&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: added bower_components to default ignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3550&quot;&gt;#3550&lt;/a&gt;) (Julian Laval)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to Espree 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4334&quot;&gt;#4334&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Freeze context object (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4495&quot;&gt;#4495&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove warnings of readonly from &lt;code&gt;no-undef&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4504&quot;&gt;#4504&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Implement yield-star-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4115&quot;&gt;#4115&lt;/a&gt;) (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Breaking: Default no-magic-numbers to none. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4193&quot;&gt;#4193&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Breaking: Allow empty arrow body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4411&quot;&gt;#4411&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add no-implicit-globals rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4542&quot;&gt;#4542&lt;/a&gt;) (Joshua Peek)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;array-callback-return&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1128&quot;&gt;#1128&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add no-restricted-imports rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3196&quot;&gt;#3196&lt;/a&gt;) (Guy Ellis)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-rest-params&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4108&quot;&gt;#4108&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Code Path Analysis (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-use-before-define&lt;/code&gt; checks invalid initializer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4280&quot;&gt;#4280&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add class body support to &lt;code&gt;indent&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4372&quot;&gt;#4372&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add ‘method’ option to no-empty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4605&quot;&gt;#4605&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: Option to ignore constructor Fns object-shorthand (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4487&quot;&gt;#4487&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Update: add class option to &lt;code&gt;no-use-before-define&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3944&quot;&gt;#3944&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: allowAfterThis option in no-underscore-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3435&quot;&gt;#3435&lt;/a&gt;) (just-boris)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;prefer-const&lt;/code&gt; begins to cover separating init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4474&quot;&gt;#4474&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Update rule tests for parser options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4673&quot;&gt;#4673&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: max-len rule overestimates the width of some tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4661&quot;&gt;#4661&lt;/a&gt;) (Nick Evans)&lt;/li&gt;
&lt;li&gt;Fix: Use oneValuePerFlag for --ignore-pattern option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;Fix: Handle forbidden LineTerminators in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4229&quot;&gt;#4229&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Check YieldExpression argument in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4608&quot;&gt;#4608&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Do not cache &lt;code&gt;package.json&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4611&quot;&gt;#4611&lt;/a&gt;) (Spain)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;consistent-return&lt;/code&gt; checks the last (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3373&quot;&gt;#3373&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unreachable&lt;/code&gt; with the code path (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3939&quot;&gt;#3939&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-this-before-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-fallthrough&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;constructor-super&lt;/code&gt; with the code path analysis (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Adding options unit tests for --ignore-pattern (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4507&quot;&gt;#4507&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-eval&lt;/code&gt; come to catch indirect eval (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4399&quot;&gt;#4399&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4441&quot;&gt;#4441&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: writing mistake (molee1905)&lt;/li&gt;
&lt;li&gt;Docs: no-extra-semi no longer refers to deprecated rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4598&quot;&gt;#4598&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Docs: Update docs/rules/no-plusplus.md (Xiangyun Chi)&lt;/li&gt;
&lt;li&gt;Docs: Add Code of Conduct (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3095&quot;&gt;#3095&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Handlebars to &amp;gt;= 4.0.5 for security reasons (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4642&quot;&gt;#4642&lt;/a&gt;) (Jacques Favreau)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Consume no-underscore-dangle allowAfterThis option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4599&quot;&gt;#4599&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Espree v3.0.0 Alpha 2 released</title>
    <link href="https://eslint.org/blog/2015/12/espree-3-alpha-2-released/"/>
    <updated>2015-12-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/12/espree-3-alpha-2-released/</id>
    <content type="html">&lt;h2 id=&quot;installation&quot; tabindex=&quot;-1&quot;&gt;Installation&lt;/h2&gt;
&lt;p&gt;Since Espree v3.0.0 is a prerelease version, you’ll need to install it using the &lt;code&gt;@next&lt;/code&gt; tag:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ npm install espree@next
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;@latest&lt;/code&gt; tag is still on the latest v2.x version of Espree.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; We are providing this release to gather feedback. Help out by &lt;a href=&quot;https://github.com/eslint/espree/issues/new&quot;&gt;filing issues&lt;/a&gt; if you find a problem.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some highlights of changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;removal-of-most-ecmafeatures&quot; tabindex=&quot;-1&quot;&gt;Removal of most ecmaFeatures&lt;/h3&gt;
&lt;p&gt;We introduced &lt;code&gt;ecmaFeatures&lt;/code&gt; as a way to start incrementally implementing ECMAScript 6 at a time when it was constantly changing. We did this in order to allow people to start using those features that were ready without forcing usage of all features.&lt;/p&gt;
&lt;p&gt;Now that ES6 is finalized and all the features are implemented, most people are using all ES6 features and it’s a pain to have to manually configure them all. Additionally, there’s no good reason to turn on just some features and not all of them (as that’s not how the real world works).&lt;/p&gt;
&lt;p&gt;In this second alpha release, we’ve made the following changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Introduced &lt;code&gt;ecmaVersion&lt;/code&gt; as the way to indicate which version of ECMAScript you want to target. Possible values are 3, 5, and 6.&lt;/li&gt;
&lt;li&gt;Removed all ES6 flags from &lt;code&gt;ecmaFeatures&lt;/code&gt; (&lt;code&gt;globalReturn&lt;/code&gt;, &lt;code&gt;jsx&lt;/code&gt;, and experimental features remain).&lt;/li&gt;
&lt;li&gt;Removed individual checks for ES6 features (could potentially improve performance based on your usage).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In all likelihood, going forward we will probably follow a similar pattern of introducing experimental features using &lt;code&gt;ecmaFeatures&lt;/code&gt; and then rolling them into a larger &lt;code&gt;ecmaVersion&lt;/code&gt; grouping later on.&lt;/p&gt;
&lt;h3 id=&quot;exporting-visitorkeys&quot; tabindex=&quot;-1&quot;&gt;Exporting VisitorKeys&lt;/h3&gt;
&lt;p&gt;Tools that use the ESTree format rely on knowledge of the syntax tree in order to work with it. This information tends to be spread amongst various tools. In order to make it easier to work with Espree, we are now exporting &lt;code&gt;VisitorKeys&lt;/code&gt;, which contains the navigation information that tools like escope and estraverse use to navigate the tree. We’re hoping this makes it easier for other tools to understand what Espree is producing.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: move ecmaFeatures into ecmaVersion (fixes &lt;a href=&quot;https://github.com/eslint/espree/issues/222&quot;&gt;#222&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Export VisitorKeys (fixes &lt;a href=&quot;https://github.com/eslint/espree/issues/220&quot;&gt;#220&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Espree v3.0.0 Alpha 1 released</title>
    <link href="https://eslint.org/blog/2015/12/espree-3-alpha-1-released/"/>
    <updated>2015-12-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/12/espree-3-alpha-1-released/</id>
    <content type="html">&lt;h2 id=&quot;installation&quot; tabindex=&quot;-1&quot;&gt;Installation&lt;/h2&gt;
&lt;p&gt;Since Espree v3.0.0 is a prerelease version, you’ll need to install it using the &lt;code&gt;@next&lt;/code&gt; tag:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ npm install espree@next
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;@latest&lt;/code&gt; tag is still on the latest v2.x version of Espree.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; We are providing this release to gather feedback. Help out by &lt;a href=&quot;https://github.com/eslint/espree/issues/new&quot;&gt;filing issues&lt;/a&gt; if you find a problem.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some highlights of changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;based-on-acorn&quot; tabindex=&quot;-1&quot;&gt;Based on Acorn&lt;/h3&gt;
&lt;p&gt;It was never our intention to maintain another JavaScript parser. When Espree was first introduced, Esprima development had stopped and it seemed like something need to fill that void. We forked Esprima to start Espree, and development went on from there. However, Esprima started development again and we resolved to fold Espree back into Esprima at some point. One of the big sticking points was the ability to switch on and off different language features. While such a capability was on the roadmap, it was very far off in the future, and we needed to make a decision.&lt;/p&gt;
&lt;p&gt;Ultimately, we found that Acorn already supported the hooks we’d need to generate the same output as Esprima and Espree. Since we didn’t want to continue maintaining a standalone parser, the decision was made to build Espree on top of Acorn. Effectively, Espree is an adapter that produces Esprima output directly from Acorn. This allows us to both continue development on Espree to turn off and on the language features individually as well as to contribute back to one of primary open source JavaScript parsers.&lt;/p&gt;
&lt;p&gt;This switch took a lot of time and effort, and huge thanks go to &lt;a href=&quot;https://twitter.com/rreverser&quot;&gt;Ingvar Stepanyan&lt;/a&gt; for all of his help in making this happen by both contributing code directly to Espree and for helping to fix bugs on Acorn.&lt;/p&gt;
&lt;h3 id=&quot;ast-and-output-differences&quot; tabindex=&quot;-1&quot;&gt;AST and Output Differences&lt;/h3&gt;
&lt;p&gt;Because Acorn works a bit differently than Esprima, there are some changes to the output. These changes are relatively minor and have been verified to not cause problems in ESLint, so we are hopeful that these changes also will have little effect on other consumers.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Additional &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; properties on nodes and tokens. Acorn uses these internally as part of the parsing routine and attempts to remove or make them nonenumerable resulted in a performance hit. As such, we decided to just leave these properties. They correspond exactly to the two values in the &lt;code&gt;range&lt;/code&gt; array.&lt;/li&gt;
&lt;li&gt;The end of each node is now considered the location of the last token. Esprima and Espree v2.x included trailing whitespace in the range of a node, but Acorn and Espree v3.x don’t.&lt;/li&gt;
&lt;li&gt;Error messages are different. Instead of trying to replicate the error messages from Esprima, Espree v3.x just uses the Acorn messages. The error object formats are the same, it’s just the actual text of the message that is different.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: (‘…’) should parse &lt;a href=&quot;https://github.com/eslint/espree/issues/202&quot;&gt;#202&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix: MetaProperty should have two Identifiers &lt;a href=&quot;https://github.com/eslint/espree/issues/206&quot;&gt;#206&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix: generator + computed property method is parsed as none computed. &lt;a href=&quot;https://github.com/eslint/espree/issues/207&quot;&gt;#207&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix: parse unicode escapes in identifiers (fixes &lt;a href=&quot;https://github.com/eslint/espree/issues/181&quot;&gt;#181&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Ensure object rest works in destructed arg (fixes &lt;a href=&quot;https://github.com/eslint/espree/issues/213&quot;&gt;#213&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.10.3 released</title>
    <link href="https://eslint.org/blog/2015/12/eslint-v1.10.3-released/"/>
    <updated>2015-12-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/12/eslint-v1.10.3-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Add for-of to &lt;code&gt;curly&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4571&quot;&gt;#4571&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Fix: Ignore space before function in array start (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4569&quot;&gt;#4569&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Update strict rule docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4583&quot;&gt;#4583&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Reference .eslintrc.* in contributing docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4532&quot;&gt;#4532&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.10.2 released</title>
    <link href="https://eslint.org/blog/2015/11/eslint-v1.10.2-released/"/>
    <updated>2015-11-27T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/11/eslint-v1.10.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: lines-around-comment with multiple comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3509&quot;&gt;#3509&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: Bugfix for eqeqeq autofix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4540&quot;&gt;#4540&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: Add for-in to &lt;code&gt;curly&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4436&quot;&gt;#4436&lt;/a&gt;) (Kai Cataldo)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;valid-jsdoc&lt;/code&gt; unneeded require check fix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4527&quot;&gt;#4527&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;brace-style&lt;/code&gt; ASI fix for if-else condition (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4520&quot;&gt;#4520&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Incorrect location in no-fallthrough (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4516&quot;&gt;#4516&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-spaced-func&lt;/code&gt; had been crashed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4508&quot;&gt;#4508&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Add a RestProperty test of &lt;code&gt;no-undef&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3271&quot;&gt;#3271&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Load badge from HTTPS (Brian J Brennan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: escope@3.3.0 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4485&quot;&gt;#4485&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: Pinned down js-yaml to avoid breaking dep (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4553&quot;&gt;#4553&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Upgrade: doctrine@0.7.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4545&quot;&gt;#4545&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add branch update during release process (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4491&quot;&gt;#4491&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Build: Allow revert commits in commit messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4452&quot;&gt;#4452&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Build: Update eslint bot messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4497&quot;&gt;#4497&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.10.1 released</title>
    <link href="https://eslint.org/blog/2015/11/eslint-v1.10.1-released/"/>
    <updated>2015-11-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/11/eslint-v1.10.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Revert freezing context object (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/4495&quot;&gt;#4495&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.10.0 released</title>
    <link href="https://eslint.org/blog/2015/11/eslint-v1.10.0-released/"/>
    <updated>2015-11-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/11/eslint-v1.10.0-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This is the last scheduled release prior to v2.0.0. In the coming weeks, we will be focusing specifically on v2.0.0 and will be regularly releasing alpha versions for testing. These alpha versions &lt;em&gt;are not&lt;/em&gt; suitable for use in a production environment and are provided primarily for getting early feedback.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some highlights of changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;configuration-file-formats&quot; tabindex=&quot;-1&quot;&gt;Configuration File Formats&lt;/h3&gt;
&lt;p&gt;v1.10.0 introduces the ability to use configuration files in different formats. Instead of the regular &lt;code&gt;.eslintrc&lt;/code&gt; file, you can use a JavaScript (&lt;code&gt;.eslintrc.js&lt;/code&gt;), a YAML file (&lt;code&gt;.eslintrc.yml&lt;/code&gt; or &lt;code&gt;.eslintrc.yaml&lt;/code&gt;), or a JSON file (&lt;code&gt;.eslintrc.json&lt;/code&gt;). We are formally deprecating use of the &lt;code&gt;.eslintrc&lt;/code&gt; extensionless configuration file format in favor the format-specific versions. Don’t worry, we’ll still support &lt;code&gt;.eslintrc&lt;/code&gt; files for a long time, but we’d like to encourage everyone to move to the new file formats as you’ll get advantages such as syntax highlighting and error detection with many editors. Read more in the &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#configuration-file-formats&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;improvements-to---init&quot; tabindex=&quot;-1&quot;&gt;Improvements to --init&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;--init&lt;/code&gt; command, which is used to bootstrap a configuration file, now has an additional option: use a popular style guide. When running &lt;code&gt;--init&lt;/code&gt;, you can still choose to answer the questionnaire we’ve always had, or you can choose to use the Google, Airbnb, or Standard style guides. The correct shareable config will automatically be installed in your project when using one of these style guides. We will look to add more popular style guides as the shareable configs become available.&lt;/p&gt;
&lt;p&gt;Additionally, &lt;code&gt;--init&lt;/code&gt; will now create a configuration file in one of the new formats. It will ask you which format you prefer and will generate the file in that format.&lt;/p&gt;
&lt;h3 id=&quot;disabling-inline-configurations&quot; tabindex=&quot;-1&quot;&gt;Disabling Inline Configurations&lt;/h3&gt;
&lt;p&gt;The new &lt;a href=&quot;https://eslint.org/docs/user-guide/command-line-interface.html#no-inline-config&quot;&gt;&lt;code&gt;--no-inline-config&lt;/code&gt;&lt;/a&gt; command makes ESLint skip all inline configuration comments (such as &lt;code&gt;/*eslint semi:2*/&lt;/code&gt;) so that you can only configure ESLint uses the command line and configuration files.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Disable comment config option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3901&quot;&gt;#3901&lt;/a&gt;) (Matthew Riley MacPherson)&lt;/li&gt;
&lt;li&gt;New: Config files with extensions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4045&quot;&gt;#4045&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4263&quot;&gt;#4263&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: --init to create extensioned files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4476&quot;&gt;#4476&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Add class support to &lt;code&gt;require-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4268&quot;&gt;#4268&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: return type error in &lt;code&gt;valid-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4443&quot;&gt;#4443&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Display errors at the place where fix should go (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4470&quot;&gt;#4470&lt;/a&gt;) (nightwing)&lt;/li&gt;
&lt;li&gt;Update: Accept array for &lt;code&gt;ignorePattern&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3982&quot;&gt;#3982&lt;/a&gt;) (Jesse McCarthy)&lt;/li&gt;
&lt;li&gt;Update: replace label and break with IIFE and return (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4459&quot;&gt;#4459&lt;/a&gt;) (Ilya Panasenko)&lt;/li&gt;
&lt;li&gt;Update: Allow empty arrow body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4411&quot;&gt;#4411&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Refactor eslint.verify args (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4395&quot;&gt;#4395&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Add Popular Style Guides (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4320&quot;&gt;#4320&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Update: no-implicit-coercion validate AssignmentExpression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4348&quot;&gt;#4348&lt;/a&gt;) (Ilya Panasenko)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Handle comments in block-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4387&quot;&gt;#4387&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: space-before-keywords false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4449&quot;&gt;#4449&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: Improves performance (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Autofix quotes produces invalid javascript (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4380&quot;&gt;#4380&lt;/a&gt;) (nightwing)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-extend-native&lt;/code&gt; crashed at empty defineProperty (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4438&quot;&gt;#4438&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Support empty if blocks in lines-around-comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4339&quot;&gt;#4339&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;curly&lt;/code&gt; warns wrong location for &lt;code&gt;else&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4362&quot;&gt;#4362&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;id-length&lt;/code&gt; properties never option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4347&quot;&gt;#4347&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: eqeqeq autofix avoids clashes with space-infix-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4423&quot;&gt;#4423&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: Handle comments in comma-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4389&quot;&gt;#4389&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: no-undef-init should ignore const (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4284&quot;&gt;#4284&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Add the missing “as-needed” docs to the radix rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4364&quot;&gt;#4364&lt;/a&gt;) (Michał Gołębiowski)&lt;/li&gt;
&lt;li&gt;Fix: Display singular/plural version of “line” in message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4359&quot;&gt;#4359&lt;/a&gt;) (Marius Schulz)&lt;/li&gt;
&lt;li&gt;Fix: eslint.report can be called w/o node if loc provided (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4220&quot;&gt;#4220&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Remove dupes from changelog (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update description of exported comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3916&quot;&gt;#3916&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Move legacy rules to stylistic (files &lt;a href=&quot;https://github.com/eslint/eslint/issues/4111&quot;&gt;#4111&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Clean up description of recommended rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4365&quot;&gt;#4365&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Fix home directory config description (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4398&quot;&gt;#4398&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in default &lt;code&gt;cacheLocation&lt;/code&gt; value (Andrew Hutchings)&lt;/li&gt;
&lt;li&gt;Docs: Update &lt;a href=&quot;http://indent.md/&quot;&gt;indent.md&lt;/a&gt; (Nathan Brown)&lt;/li&gt;
&lt;li&gt;Docs: Replace link to deprecated rule with newer rule (Andrew Marshall)&lt;/li&gt;
&lt;li&gt;Docs: missing close rbracket in example (@storkme)&lt;/li&gt;
&lt;li&gt;Docs: Document semi-spacing behaviour (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4404&quot;&gt;#4404&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.9.0 released</title>
    <link href="https://eslint.org/blog/2015/11/eslint-v1.9.0-released/"/>
    <updated>2015-11-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/11/eslint-v1.9.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some highlights of changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-case-declarations&quot;&gt;&lt;code&gt;no-case-declarations&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;better-npm-3-support&quot; tabindex=&quot;-1&quot;&gt;Better npm 3 Support&lt;/h3&gt;
&lt;p&gt;Due to the changes in dependency management in npm 3, some users were getting errors when attempting to run ESLint. We’ve updated our dependencies and ESLint should now work correctly for users of npm 3.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add no-case-declarations rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4278&quot;&gt;#4278&lt;/a&gt;) (Erik Arvidsson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Make radix accept a “as-needed” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4048&quot;&gt;#4048&lt;/a&gt;) (Michał Gołębiowski)&lt;/li&gt;
&lt;li&gt;Update: Add default to &lt;code&gt;max-nested-callbacks&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4297&quot;&gt;#4297&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Add quotes to error messages to improve clarity (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4313&quot;&gt;#4313&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Extract glob and filesystem logic from cli-engine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4305&quot;&gt;#4305&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Update: Detect and fix wrong linebreaks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3981&quot;&gt;#3981&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Update the message to include number of lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4342&quot;&gt;#4342&lt;/a&gt;) (Brian Delahunty)&lt;/li&gt;
&lt;li&gt;Fix: Fixer to not overlap ranges among fix objects (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4321&quot;&gt;#4321&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Check comments in space-in-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4302&quot;&gt;#4302&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: tests failing due to differences in temporary paths (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4324&quot;&gt;#4324&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: Make tests compatible with Windows (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4315&quot;&gt;#4315&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Fix: ensure using correct estraverse (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3951&quot;&gt;#3951&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: ASI causes problem whether semicolons are used or not (Thai Pangsakulyanont)&lt;/li&gt;
&lt;li&gt;Docs: update docs about using gitignore (Mateusz Derks)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Upgrade various dependencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4303&quot;&gt;#4303&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Clarify commit-check messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4256&quot;&gt;#4256&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Build: Add node 5 to travis build (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4310&quot;&gt;#4310&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.8.0 released</title>
    <link href="https://eslint.org/blog/2015/10/eslint-v1.8.0-released/"/>
    <updated>2015-10-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/10/eslint-v1.8.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some highlights of changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-arrow-condition&quot;&gt;&lt;code&gt;no-arrow-condition&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/arrow-body-style&quot;&gt;&lt;code&gt;arrow-body-style&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;autofixing&quot; tabindex=&quot;-1&quot;&gt;Autofixing&lt;/h3&gt;
&lt;p&gt;The following rules have been updated to include autofixing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/comma-spacing&quot;&gt;&lt;code&gt;comma-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;caching-enhancements&quot; tabindex=&quot;-1&quot;&gt;Caching Enhancements&lt;/h3&gt;
&lt;p&gt;If you’ve been using the &lt;code&gt;--cache&lt;/code&gt; feature, it will now optionally create a directory for your cache instead of a file. This change means that it’s possible to use a single cache for every project you work on rather than one cache per project.&lt;/p&gt;
&lt;p&gt;To facilitate this change, we are deprecating &lt;code&gt;--cache-file&lt;/code&gt; in favor of &lt;code&gt;--cache-location&lt;/code&gt;, which can accept either a file path or a directory (be sure to include the trailing slash to indicate a directory). The &lt;code&gt;--cache-file&lt;/code&gt; flag will be removed in v2.0.0.&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/user-guide/command-line-interface#caching&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;ruletester-enhancement&quot; tabindex=&quot;-1&quot;&gt;RuleTester Enhancement&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;RuleTester&lt;/code&gt; just got a bit smarter. It will now verify that the AST was not modified during execution of a rule. This was added as it’s possible for rules to accidentally modify the AST during execution, and that modification can negatively affect other rules. The &lt;code&gt;RuleTester&lt;/code&gt; will now fail any test that modifies the AST.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add rule no-arrow-condition (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3280&quot;&gt;#3280&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;li&gt;New: arrow-body-style rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4109&quot;&gt;#4109&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add support for class in &lt;code&gt;valid-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4279&quot;&gt;#4279&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: cache-file accepts a directory. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4241&quot;&gt;#4241&lt;/a&gt;) (royriojas)&lt;/li&gt;
&lt;li&gt;Update: Add &lt;code&gt;maxEOF&lt;/code&gt; to no-multiple-empty-lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4235&quot;&gt;#4235&lt;/a&gt;) (Adrien Vergé)&lt;/li&gt;
&lt;li&gt;Update: fix option for comma-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4232&quot;&gt;#4232&lt;/a&gt;) (HIPP Edgar (PRESTA EXT))&lt;/li&gt;
&lt;li&gt;Update: RuleTester come to check AST was not modified (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4156&quot;&gt;#4156&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add &lt;code&gt;allow&lt;/code&gt; option to &lt;code&gt;no-shadow&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3035&quot;&gt;#3035&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Option to exclude afterthoughts from no-plusplus (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4093&quot;&gt;#4093&lt;/a&gt;) (Brody McKee)&lt;/li&gt;
&lt;li&gt;Update: Add linebreak style option to eol-last (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4148&quot;&gt;#4148&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Check for node property before testing type (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4298&quot;&gt;#4298&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Fix: Missing errors in space-in-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4257&quot;&gt;#4257&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3996&quot;&gt;#3996&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;cacheLocation&lt;/code&gt; handles paths in windows style. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4285&quot;&gt;#4285&lt;/a&gt;) (royriojas)&lt;/li&gt;
&lt;li&gt;Fix: Prepare config before verifying SourceCode (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4230&quot;&gt;#4230&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Fix: wrong count for ‘no-multiple-empty-lines’ on last line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4228&quot;&gt;#4228&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: Check node exists before checking type (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4231&quot;&gt;#4231&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Specify ‘double’ as default for quotes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4270&quot;&gt;#4270&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: fixed typo (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Docs: fixed typo (mpal9000)&lt;/li&gt;
&lt;li&gt;Docs: Fix use of wrong word in configuration doc (Jérémie Astori)&lt;/li&gt;
&lt;li&gt;Docs: Add alberto as a committer (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Do not stub console in testing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1328&quot;&gt;#1328&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.7.3 released</title>
    <link href="https://eslint.org/blog/2015/10/eslint-v1.7.3-released/"/>
    <updated>2015-10-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/10/eslint-v1.7.3-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Support comma-first style in key-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3877&quot;&gt;#3877&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-magic-numbers: variable declarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4192&quot;&gt;#4192&lt;/a&gt;) (Ilya Panasenko)&lt;/li&gt;
&lt;li&gt;Fix: Support ES6 shorthand in key-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3678&quot;&gt;#3678&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; array with memberExpression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4203&quot;&gt;#4203&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; param function on sameline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4174&quot;&gt;#4174&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: no-multiple-empty-lines fails when empty line at EOF (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4214&quot;&gt;#4214&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;comma-dangle&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4200&quot;&gt;#4200&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;valid-jsdoc&lt;/code&gt; prefer problem (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4205&quot;&gt;#4205&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: correct no-multiple-empty-lines at EOF (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4140&quot;&gt;#4140&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add missing single-quote (Kevin Lamping)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.7.2 released</title>
    <link href="https://eslint.org/blog/2015/10/eslint-v1.7.2-released/"/>
    <updated>2015-10-19T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/10/eslint-v1.7.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: comma-dangle confused by parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4195&quot;&gt;#4195&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-mixed-spaces-and-tabs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4189&quot;&gt;#4189&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4190&quot;&gt;#4190&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: no-extend-native disallow using Object.properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4180&quot;&gt;#4180&lt;/a&gt;) (Nathan Woltman)&lt;/li&gt;
&lt;li&gt;Fix: no-magic-numbers should ignore Number.parseInt (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4167&quot;&gt;#4167&lt;/a&gt;) (Henry Zhu)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.7.1 released</title>
    <link href="https://eslint.org/blog/2015/10/eslint-v1.7.1-released/"/>
    <updated>2015-10-16T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/10/eslint-v1.7.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: id-match schema (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4155&quot;&gt;#4155&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-magic-numbers should ignore parseInt (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4167&quot;&gt;#4167&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; param function fix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4165&quot;&gt;#4165&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4164&quot;&gt;#4164&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.7.0 released</title>
    <link href="https://eslint.org/blog/2015/10/eslint-v1.7.0-released/"/>
    <updated>2015-10-16T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/10/eslint-v1.7.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some highlights of changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-empty-pattern&quot;&gt;&lt;code&gt;no-empty-pattern&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-magic-numbers&quot;&gt;&lt;code&gt;no-magic-numbers&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;extending-javascript-configs&quot; tabindex=&quot;-1&quot;&gt;Extending JavaScript configs&lt;/h3&gt;
&lt;p&gt;You’ve always been able to use npm packages in the &lt;code&gt;extends&lt;/code&gt; field of your configuration file. Now, you can directly link to JavaScript files in &lt;code&gt;extends&lt;/code&gt;, allowing you to reference JavaScript configuration files directly even when they are not part of an npm package.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Create eslint-config-eslint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3525&quot;&gt;#3525&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New: add “consistent” option to the “curly” rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2390&quot;&gt;#2390&lt;/a&gt;) (Benoît Zugmeyer)&lt;/li&gt;
&lt;li&gt;New: no-empty-pattern rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3668&quot;&gt;#3668&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;New: no-magic-numbers rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4027&quot;&gt;#4027&lt;/a&gt;) (Vincent Lemeunier)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Support .js files for config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3102&quot;&gt;#3102&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: RuleTester allows string errors in invalid cases (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4117&quot;&gt;#4117&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Update: added exceptions to &lt;code&gt;lines-around-comment&lt;/code&gt; rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2965&quot;&gt;#2965&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Update: Add &lt;code&gt;matchDescription&lt;/code&gt; option to &lt;code&gt;valid-jsdoc&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2449&quot;&gt;#2449&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add &lt;code&gt;allow&lt;/code&gt; option for &lt;code&gt;no-underscore-dangle&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2135&quot;&gt;#2135&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;allowArrowFunctions&lt;/code&gt; option for &lt;code&gt;func-style&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1897&quot;&gt;#1897&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Ignore end of function in newline-after-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3682&quot;&gt;#3682&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Option to ignore for loops in init-declarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3641&quot;&gt;#3641&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Add webextensions environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4051&quot;&gt;#4051&lt;/a&gt;) (Blake Winton)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: array-bracket-spacing for empty array (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4141&quot;&gt;#4141&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; arrow function check fix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4142&quot;&gt;#4142&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Make eslint-config-eslint work (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4145&quot;&gt;#4145&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;prefer-arrow-callback&lt;/code&gt; had been wrong at arguments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4095&quot;&gt;#4095&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: check for objects or arrays in array-bracket-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4083&quot;&gt;#4083&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: message templates fail when no parameters are passed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4080&quot;&gt;#4080&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; multi-line function call (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4073&quot;&gt;#4073&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4075&quot;&gt;#4075&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: no-mixed-tabs-and-spaces fails with some comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4086&quot;&gt;#4086&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;semi&lt;/code&gt; to check for do-while loops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4090&quot;&gt;#4090&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unused-vars&lt;/code&gt; had been missing some parameters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4047&quot;&gt;#4047&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: no-mixed-spaces-and-tabs with comments and templates (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4077&quot;&gt;#4077&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: Ignore template literals in no-mixed-tabs-and-spaces (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4054&quot;&gt;#4054&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-cond-assign&lt;/code&gt; had needed double parens in &lt;code&gt;for&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4023&quot;&gt;#4023&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: id-match bug incorrectly errors on &lt;code&gt;NewExpression&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4042&quot;&gt;#4042&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-trailing-spaces&lt;/code&gt; autofix to handle linebreaks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4050&quot;&gt;#4050&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: renamed no-magic-number to no-magic-numbers (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4053&quot;&gt;#4053&lt;/a&gt;) (Vincent Lemeunier)&lt;/li&gt;
&lt;li&gt;Fix: no-cond-assign should report assignment location (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4040&quot;&gt;#4040&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-redeclare&lt;/code&gt; and &lt;code&gt;no-sahadow&lt;/code&gt; for builtin globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3971&quot;&gt;#3971&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Update various rules docs (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Reference no-unexpected-multiline in semi (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4114&quot;&gt;#4114&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Alphabetize Rules lists (Kenneth Chung)&lt;/li&gt;
&lt;li&gt;Docs: Improve comma-dangle documentation (Gilad Peleg)&lt;/li&gt;
&lt;li&gt;Docs: Re-tag JSX code fences (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4020&quot;&gt;#4020&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Remove list of users from README (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3881&quot;&gt;#3881&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Upgrade globals to 8.11.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3599&quot;&gt;#3599&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Fix path related failures on Windows in tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4061&quot;&gt;#4061&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Build: Enable CodeClimate (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4068&quot;&gt;#4068&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Build: Performance perf to not ignore jshint file (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3765&quot;&gt;#3765&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Build: Add &lt;code&gt;.eslintignore&lt;/code&gt; file for the project (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3765&quot;&gt;#3765&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.6.0 released</title>
    <link href="https://eslint.org/blog/2015/10/eslint-v1.6.0-released/"/>
    <updated>2015-10-02T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/10/eslint-v1.6.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some highlights of changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;autofixing-of-more-rules&quot; tabindex=&quot;-1&quot;&gt;Autofixing of more rules&lt;/h3&gt;
&lt;p&gt;ESLint v1.6.0 introduces several more autofixing rules to use with the &lt;code&gt;--fix&lt;/code&gt; command line argument. In this release, we have implemented autofixing in these rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;space-unary-ops&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;computed-property-spacing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-multi-spaces&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;object-curly-spacing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;array-bracket-spacing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;generator-star-spacing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;arrow-spacing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;block-spacing&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you run ESLint on the command line with the &lt;code&gt;--fix&lt;/code&gt; flag, it will automatically fix any problems that it can (not all problems are fixable at once) and will not report the problems that were fixed.&lt;/p&gt;
&lt;p&gt;This feature is still considered experimental but is backed up by a lot of unit tests verifying correctness. Still, we expect to find some edge cases that we didn’t anticipate, so we’d appreciate your feedback.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Limitations:&lt;/strong&gt; the &lt;code&gt;--fix&lt;/code&gt; flag does not work for piped-in text and has no effect on code that uses ESLint processors.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: no-negated-condition rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3740&quot;&gt;#3740&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Implement auto fix for space-unary-ops rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3976&quot;&gt;#3976&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for computed-property-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3975&quot;&gt;#3975&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for no-multi-spaces rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3979&quot;&gt;#3979&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: ESLint reports parsing errors with clear prefix. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3555&quot;&gt;#3555&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;no-mixed-require&lt;/code&gt; to have non boolean option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3922&quot;&gt;#3922&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add &lt;code&gt;typeof&lt;/code&gt; option to &lt;code&gt;no-undef&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3684&quot;&gt;#3684&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for object-curly-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3857&quot;&gt;#3857&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for array-bracket-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3858&quot;&gt;#3858&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Apply lazy loading for rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3930&quot;&gt;#3930&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update:warn message use @return when prefer.returns=return (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3889&quot;&gt;#3889&lt;/a&gt;) (闲耘™)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for generator-star-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3873&quot;&gt;#3873&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for arrow-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3860&quot;&gt;#3860&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for block-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3859&quot;&gt;#3859&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Add env ‘nashorn’ to support Java 8 Nashorn Engine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3874&quot;&gt;#3874&lt;/a&gt;) (Benjamin Winterberg)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: cache is basically not working (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4008&quot;&gt;#4008&lt;/a&gt;) (Richard Hansen)&lt;/li&gt;
&lt;li&gt;Fix: a test failure on Windows (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3968&quot;&gt;#3968&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-invalid-this&lt;/code&gt; had been missing globals in node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3961&quot;&gt;#3961&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;curly&lt;/code&gt; with &lt;code&gt;multi&lt;/code&gt; had false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3856&quot;&gt;#3856&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: space-before-keywords fails with super keyword (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3946&quot;&gt;#3946&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Fix: CLI should not fail on account of ignored files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3978&quot;&gt;#3978&lt;/a&gt;) (Dominic Barnes)&lt;/li&gt;
&lt;li&gt;Fix: brace-style rule incorrectly flagging switch (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/4002&quot;&gt;#4002&lt;/a&gt;) (Aparajita Fishman)&lt;/li&gt;
&lt;li&gt;Fix: Report shorthand method names in complexity rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3955&quot;&gt;#3955&lt;/a&gt;) (Tijn Kersjes)&lt;/li&gt;
&lt;li&gt;Fix: trailing spaces auto fix to check for line breaks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3940&quot;&gt;#3940&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Add schema to &lt;code&gt;global-require&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3923&quot;&gt;#3923&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: no-trailing-spaces autofix to account for blank lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3912&quot;&gt;#3912&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Support allman style for switch statement (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3903&quot;&gt;#3903&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add note about typeof check for isNaN (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3985&quot;&gt;#3985&lt;/a&gt;) (Daniel Lo Nigro)&lt;/li&gt;
&lt;li&gt;Docs: Fix explanation and typos for accessor-pairs (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Fix typos for camelcase (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Fix typos for max-statements (Danny Guo)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo for arrow-spacing (Danny Guo)&lt;/li&gt;
&lt;li&gt;Docs: Fix typos for wrap-regex (Danny Guo)&lt;/li&gt;
&lt;li&gt;Docs: Fix explanation for space-before-keywords (Danny Guo)&lt;/li&gt;
&lt;li&gt;Docs: Fix typos for operator-linebreak (Danny Guo)&lt;/li&gt;
&lt;li&gt;Docs: Fix typos for callback-return (Danny Guo)&lt;/li&gt;
&lt;li&gt;Docs: Fix example in &lt;a href=&quot;http://no-negated-condition.md/&quot;&gt;no-negated-condition.md&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3908&quot;&gt;#3908&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in blog post template (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Prepare for rule doc linting (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2271&quot;&gt;#2271&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add load performance check inside perf function (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3994&quot;&gt;#3994&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Build: Update markdownlint dependency (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3954&quot;&gt;#3954&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.5.1 released</title>
    <link href="https://eslint.org/blog/2015/09/eslint-v1.5.1-released/"/>
    <updated>2015-09-22T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/09/eslint-v1.5.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: valid-jsdoc fix for param with properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3476&quot;&gt;#3476&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: valid-jsdoc error with square braces (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2270&quot;&gt;#2270&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;space-before-keywords&lt;/code&gt; had been wrong on getters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3854&quot;&gt;#3854&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-dupe-args&lt;/code&gt; had been wrong for nested destructure (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3867&quot;&gt;#3867&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: don’t ignore config if cwd is the home dir (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3846&quot;&gt;#3846&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;func-style&lt;/code&gt; had been warning arrows with &lt;code&gt;this&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3819&quot;&gt;#3819&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;space-before-keywords&lt;/code&gt;; allow opening curly braces (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3789&quot;&gt;#3789&lt;/a&gt;) (Marko Raatikka)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: io.js is the new Node.js (thefourtheye)&lt;/li&gt;
&lt;li&gt;Docs: Fix method signature on working-with-rules docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3862&quot;&gt;#3862&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Docs: Add related ternary links (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3835&quot;&gt;#3835&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: &lt;code&gt;doctrine&lt;/code&gt; to 0.7.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3891&quot;&gt;#3891&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Fix broken .gitattributes generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3566&quot;&gt;#3566&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Build: Fix formatter docs generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3847&quot;&gt;#3847&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.5.0 released</title>
    <link href="https://eslint.org/blog/2015/09/eslint-v1.5.0-released/"/>
    <updated>2015-09-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/09/eslint-v1.5.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;Here are some highlights of changes in this release.&lt;/p&gt;
&lt;h3 id=&quot;autofixing-of-more-rules&quot; tabindex=&quot;-1&quot;&gt;Autofixing of more rules&lt;/h3&gt;
&lt;p&gt;ESLint v1.5.0 introduces several more autofixing rules to use with the &lt;code&gt;--fix&lt;/code&gt; command line argument. In this release, we have implemented autofixing in these rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;eol-last&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;indent&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-extra-semi&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-spaced-func&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-trailing-spaces&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;space-after-keywords&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;space-before-blocks&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;space-before-keywords&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;space-infix-ops&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;space-return-throw-case&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;space-before-function-paren&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When you run ESLint on the command line with the &lt;code&gt;--fix&lt;/code&gt; flag, it will automatically fix any problems that it can (not all problems are fixable at once) and will not report the problems that were fixed.&lt;/p&gt;
&lt;p&gt;This feature is still considered experimental but is backed up by a lot of unit tests verifying correctness. Still, we expect to find some edge cases that we didn’t anticipate, so we’d appreciate your feedback.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Limitations:&lt;/strong&gt; the &lt;code&gt;--fix&lt;/code&gt; flag does not work for piped-in text and has no effect on code that uses ESLint processors.&lt;/p&gt;
&lt;h3 id=&quot;%E2%80%93debug-flag&quot; tabindex=&quot;-1&quot;&gt;–debug Flag&lt;/h3&gt;
&lt;p&gt;Sometimes ESLint doesn’t do what it’s supposed to do, and in that case, the new &lt;code&gt;--debug&lt;/code&gt; flag can help. When using this flag, the command line will output debug information to the console, allowing you to see what ESLint is doing and providing valuable information to determine if there’s a bug. We may ask for the debug information when you report a possible bug.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add --debug flag to CLI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2692&quot;&gt;#2692&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;key-spacing&lt;/code&gt; should allow 1+ around colon (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3363&quot;&gt;#3363&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Add configuration option to &lt;code&gt;space-before-blocks&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3758&quot;&gt;#3758&lt;/a&gt;) (Phil Vargas)&lt;/li&gt;
&lt;li&gt;Update: auto fix for space-before-function-paren rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3766&quot;&gt;#3766&lt;/a&gt;) (alberto)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for &lt;code&gt;eol-last&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3725&quot;&gt;#3725&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for &lt;code&gt;indent&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3734&quot;&gt;#3734&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for &lt;code&gt;no-extra-semi&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3745&quot;&gt;#3745&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for &lt;code&gt;no-spaced-func&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3728&quot;&gt;#3728&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for &lt;code&gt;no-trailing-spaces&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3723&quot;&gt;#3723&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for &lt;code&gt;space-after-keywords&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3773&quot;&gt;#3773&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for &lt;code&gt;space-before-blocks&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3776&quot;&gt;#3776&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for &lt;code&gt;space-before-keywords&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3771&quot;&gt;#3771&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for &lt;code&gt;space-infix-ops&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3801&quot;&gt;#3801&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Implement auto fix for &lt;code&gt;space-return-throw-case&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3732&quot;&gt;#3732&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Refactors the traversing logic (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3530&quot;&gt;#3530&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;comma-dangle&lt;/code&gt; had not been checking imports/exports (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3794&quot;&gt;#3794&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-warning-comments&lt;/code&gt; can’t be set via config comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3619&quot;&gt;#3619&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;semi-spacing&lt;/code&gt; had conflicted with &lt;code&gt;block-spacing&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3721&quot;&gt;#3721&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;space-before-blocks&lt;/code&gt; had conflicted &lt;code&gt;arrow-spacing&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3769&quot;&gt;#3769&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;space-before-keywords&lt;/code&gt; fails to handle some cases (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3756&quot;&gt;#3756&lt;/a&gt;) (Marko Raatikka)&lt;/li&gt;
&lt;li&gt;Fix: Directory ignoring should work (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3812&quot;&gt;#3812&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Ensure **/node_modules works in ignore files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3788&quot;&gt;#3788&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Ensure ./ works correctly with CLI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3792&quot;&gt;#3792&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: env-specified ecmaFeatures had been wrong (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3735&quot;&gt;#3735&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: false alarm of semi-spacing with semi set to never (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1983&quot;&gt;#1983&lt;/a&gt;) (Chen Yicai)&lt;/li&gt;
&lt;li&gt;Fix: function body indent issues (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3614&quot;&gt;#3614&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3799&quot;&gt;#3799&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: invalidate cache when config changes. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3770&quot;&gt;#3770&lt;/a&gt;) (royriojas)&lt;/li&gt;
&lt;li&gt;Fix: jsx-quotes exception for attributes without value (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3793&quot;&gt;#3793&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: space checking between tokens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2211&quot;&gt;#2211&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: tests fail due to differences in temporary paths. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3778&quot;&gt;#3778&lt;/a&gt;) (royriojas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add if-else example (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3722&quot;&gt;#3722&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: add more examples + tests for block-scoped-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3791&quot;&gt;#3791&lt;/a&gt;) (JT)&lt;/li&gt;
&lt;li&gt;Docs: Change example wording from warnings to problems (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3676&quot;&gt;#3676&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: Clarify node types in no-multi-spaces (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3781&quot;&gt;#3781&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Fix closing code fence on cli docs (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: Update new-cap docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3798&quot;&gt;#3798&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update no-undef-init docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3170&quot;&gt;#3170&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update no-unused-expressions docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3685&quot;&gt;#3685&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Generate formatter example docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3560&quot;&gt;#3560&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.4.3 released</title>
    <link href="https://eslint.org/blog/2015/09/eslint-v1.4.3-released/"/>
    <updated>2015-09-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/09/eslint-v1.4.3-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Directory ignoring should work (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3812&quot;&gt;#3812&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: jsx-quotes exception for attributes without value (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3793&quot;&gt;#3793&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.4.2 released</title>
    <link href="https://eslint.org/blog/2015/09/eslint-v1.4.2-released/"/>
    <updated>2015-09-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/09/eslint-v1.4.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Ensure **/node_modules works in ignore files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3788&quot;&gt;#3788&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Ensure ./ works correctly with CLI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3792&quot;&gt;#3792&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.4.1 released</title>
    <link href="https://eslint.org/blog/2015/09/eslint-v1.4.1-released/"/>
    <updated>2015-09-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/09/eslint-v1.4.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: CLIEngine default cache parameter name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3755&quot;&gt;#3755&lt;/a&gt;) (Daniel G. Taylor)&lt;/li&gt;
&lt;li&gt;Fix: Glob pattern from .eslintignore not applied (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3750&quot;&gt;#3750&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Skip JSDoc from NewExpression (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3744&quot;&gt;#3744&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Shorten and simplify autocomment for new issues (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.4.0 released</title>
    <link href="https://eslint.org/blog/2015/09/eslint-v1.4.0-released/"/>
    <updated>2015-09-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/09/eslint-v1.4.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This release contains some exciting new features!&lt;/p&gt;
&lt;h3 id=&quot;autofixing-of-some-rules&quot; tabindex=&quot;-1&quot;&gt;Autofixing of some rules&lt;/h3&gt;
&lt;p&gt;ESLint v1.4.0 introduces the &lt;code&gt;--fix&lt;/code&gt; command line argument to automatically fix some rules. In this first release, we have implemented autofixing in three rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;semi&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;eqeqeq&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;quotes&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When you run ESLint on the command line with the &lt;code&gt;--fix&lt;/code&gt; flag, it will automatically fix any problems that it can (not all problems are fixable at once) and will not report the problems that were fixed.&lt;/p&gt;
&lt;p&gt;This feature is still considered experimental but is backed up by a lot of unit tests verifying correctness. Still, we expect to find some edge cases that we didn’t anticipate, so we’d appreciate your feedback.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Limitations:&lt;/strong&gt; the &lt;code&gt;--fix&lt;/code&gt; flag does not work for piped-in text and has no effect on code that uses ESLint processors.&lt;/p&gt;
&lt;h3 id=&quot;cached-results&quot; tabindex=&quot;-1&quot;&gt;Cached results&lt;/h3&gt;
&lt;p&gt;If you’re running ESLint on a large codebase, you may find it can take a significant amount of time. To help in those situations, we’ve introduced the &lt;code&gt;--cache&lt;/code&gt; flag. When &lt;code&gt;--cache&lt;/code&gt; is present, ESLint will cache the results of the run in &lt;code&gt;.eslintcache&lt;/code&gt;. The next time you run ESLint with the &lt;code&gt;--cache&lt;/code&gt; flag, it will skip over any files that had no problems in the previous run unless they have been modified.&lt;/p&gt;
&lt;p&gt;The cache is deleted the next time you run ESLint without &lt;code&gt;--cache&lt;/code&gt;, so you can’t accidentally use it.&lt;/p&gt;
&lt;h3 id=&quot;command-line-globs&quot; tabindex=&quot;-1&quot;&gt;Command line globs&lt;/h3&gt;
&lt;p&gt;You can pass glob patterns to ESLint on the command line:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ eslint lib/**/*.js
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New rules&lt;/h3&gt;
&lt;p&gt;This release features several new rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/jsx-quotes&quot;&gt;&lt;code&gt;jsx-quotes&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/require-jsdoc&quot;&gt;&lt;code&gt;require-jsdoc&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/global-require&quot;&gt;&lt;code&gt;global-require&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-syntax&quot;&gt;&lt;code&gt;no-restricted-syntax&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/space-before-keywords&quot;&gt;&lt;code&gt;space-before-keywords&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Implement autofixing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3134&quot;&gt;#3134&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;jsx-quotes&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2011&quot;&gt;#2011&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;New: Implement cache in order to only operate on changed files since previous run. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2998&quot;&gt;#2998&lt;/a&gt;) (Roy Riojas)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;require-jsdoc&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1842&quot;&gt;#1842&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: Support glob path on command line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3402&quot;&gt;#3402&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;no-restricted-syntax&lt;/code&gt; rule to forbid certain syntax (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2422&quot;&gt;#2422&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;New: Add --max-warnings flag to CLI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2769&quot;&gt;#2769&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;New: Add &lt;code&gt;parser&lt;/code&gt; as an option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3127&quot;&gt;#3127&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;space-before-keywords&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1631&quot;&gt;#1631&lt;/a&gt;) (Marko Raatikka)&lt;/li&gt;
&lt;li&gt;New: global-require rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2318&quot;&gt;#2318&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add Node 4 to travis builds (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3697&quot;&gt;#3697&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Update: Check for default assignment in no-unneeded-ternary (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3232&quot;&gt;#3232&lt;/a&gt;) (cjihrig)&lt;/li&gt;
&lt;li&gt;Update: Grouping related CLI options. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3612&quot;&gt;#3612&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Update: Using @override does not require @param or @returns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3629&quot;&gt;#3629&lt;/a&gt;) (Whitney Young)&lt;/li&gt;
&lt;li&gt;Update: Short circuit and ternary support in no-unused-expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2733&quot;&gt;#2733&lt;/a&gt;) (David Warkentin)&lt;/li&gt;
&lt;li&gt;Update: Use &lt;code&gt;globals&lt;/code&gt; module for the &lt;code&gt;commonjs&lt;/code&gt; globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3606&quot;&gt;#3606&lt;/a&gt;) (Sindre Sorhus)&lt;/li&gt;
&lt;li&gt;Update: Allowing inline comments to disable eslint rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3472&quot;&gt;#3472&lt;/a&gt;) (Whitney Young)&lt;/li&gt;
&lt;li&gt;Update: Add quotes around the label in &lt;code&gt;no-redeclare&lt;/code&gt; error messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3583&quot;&gt;#3583&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Remove temporary &lt;code&gt;&amp;quot;allow-null&amp;quot;&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3705&quot;&gt;#3705&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unused-vars&lt;/code&gt; had been crashed at &lt;code&gt;/*global $foo*/&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3714&quot;&gt;#3714&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: make getScope acquire innermost scope (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3700&quot;&gt;#3700&lt;/a&gt;) (voideanvalue)&lt;/li&gt;
&lt;li&gt;Fix: Allow whitespace in rule message parameters. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3690&quot;&gt;#3690&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Fix: Eqeqeq rule with no option does not warn on ‘a == null’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3699&quot;&gt;#3699&lt;/a&gt;) (fediev)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unused-expressions&lt;/code&gt; with &lt;code&gt;allowShortCircuit&lt;/code&gt; false positive if left has no effect (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3675&quot;&gt;#3675&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Not check for punctuator if on same line as last var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3694&quot;&gt;#3694&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-extra-bind&lt;/code&gt; to flag all arrow funcs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3672&quot;&gt;#3672&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;object-curly-spacing&lt;/code&gt; had been crashing on an empty object pattern (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3658&quot;&gt;#3658&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-extra-parens&lt;/code&gt; false positive at IIFE with member accessing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3653&quot;&gt;#3653&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;comma-dangle&lt;/code&gt; with &lt;code&gt;&amp;quot;always&amp;quot;&lt;/code&gt;/&lt;code&gt;&amp;quot;always-multiline&amp;quot;&lt;/code&gt; false positive after a rest element (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3627&quot;&gt;#3627&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-unused-vars&lt;/code&gt; had not shown correct locations for &lt;code&gt;/*global&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3617&quot;&gt;#3617&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;space-after-keywords&lt;/code&gt; not working for &lt;code&gt;catch&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3654&quot;&gt;#3654&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Incorrectly warning about ignored files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3649&quot;&gt;#3649&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule VariableDeclarator doesn’t apply to arrow functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3661&quot;&gt;#3661&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Invalid env keys would cause an unhandled exception.(fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3265&quot;&gt;#3265&lt;/a&gt;) (Ray Booysen)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;consistent-as-needed&lt;/code&gt; mode with &lt;code&gt;keyword: true&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3636&quot;&gt;#3636&lt;/a&gt;) (Alex Guerrero)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; should only indent chain calls if the first call is single line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3591&quot;&gt;#3591&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;quote-props&lt;/code&gt; should not crash for object rest spread syntax (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3595&quot;&gt;#3595&lt;/a&gt;) (Joakim Carlstein)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-useless-concat&lt;/code&gt; false positive at numbers (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3575&quot;&gt;#3575&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3589&quot;&gt;#3589&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: line number for duplicate object keys error (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3573&quot;&gt;#3573&lt;/a&gt;) (Elliot Lynde)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add new formatters to API docs (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: Fix spelling mistake (domharrington)&lt;/li&gt;
&lt;li&gt;Docs: Make &lt;code&gt;quotes&lt;/code&gt; docs clearer (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3646&quot;&gt;#3646&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update README with release and sponsor info (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add linting for second half of rule docs (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2271&quot;&gt;#2271&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: Fixing typos in plugin processor section. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3648&quot;&gt;#3648&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Docs: Fixing broken link in documentation (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Docs: Use eslint-env in no-undef (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3616&quot;&gt;#3616&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: Replace to &lt;a href=&quot;http://npmjs.com/&quot;&gt;npmjs.com&lt;/a&gt; (Ryuichi Okumura)&lt;/li&gt;
&lt;li&gt;Docs: Including for(;;) as valid case in no-constant-condition (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Docs: correct contributing URL (Dieter Luypaert)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Consuming handlebars@^4.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3632&quot;&gt;#3632&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: check-commit now checks commit message length. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3706&quot;&gt;#3706&lt;/a&gt;) (Kevin Partington)&lt;/li&gt;
&lt;li&gt;Build: Increase mocha timeout (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3692&quot;&gt;#3692&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.3.1 released</title>
    <link href="https://eslint.org/blog/2015/08/eslint-v1.3.1-released/"/>
    <updated>2015-08-29T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/08/eslint-v1.3.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; to not crash on empty files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3570&quot;&gt;#3570&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Remove unused config file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2227&quot;&gt;#2227&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint v1.3.0 released</title>
    <link href="https://eslint.org/blog/2015/08/eslint-v1.3.0-released/"/>
    <updated>2015-08-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/08/eslint-v1.3.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;using-asts-with-the-node.js-api&quot; tabindex=&quot;-1&quot;&gt;Using ASTs with the Node.js API&lt;/h3&gt;
&lt;p&gt;A long-requested feature was finally added for those using the &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api&quot;&gt;Node.js API&lt;/a&gt;: the ability to pass ESLint an AST and retrieve an AST once ESLint is finished. There’s a new &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api#sourcecode&quot;&gt;&lt;code&gt;SourceCode&lt;/code&gt;&lt;/a&gt; type that encapsulates already-processed code, and a &lt;code&gt;SourceCode&lt;/code&gt; object can now be passed to &lt;code&gt;linter.verify()&lt;/code&gt; instead of text. For example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; linter &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;eslint&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;linter&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    SourceCode &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;eslint&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;SourceCode&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; sourceCode &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;SourceCode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;someText&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; anAST&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    messages &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; linter&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;verify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;sourceCode&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; config&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additionally, you can retrieve a &lt;code&gt;SourceCode&lt;/code&gt; object from &lt;code&gt;linter&lt;/code&gt; after linting is complete:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var messages = linter.verify(&amp;quot;var foo = bar&amp;quot;),
    sourceCode = linter.getSourceCode();

sourceCode.ast;     // the AST
sourceCode.text;    // the original text
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This should make it easier for tools using the Node.js API to avoid double-parsing of JavaScript code if they are already creating an AST.&lt;/p&gt;
&lt;h3 id=&quot;html-formatter&quot; tabindex=&quot;-1&quot;&gt;HTML Formatter&lt;/h3&gt;
&lt;p&gt;An exciting addition from Julian Laval, who contributed an &lt;a href=&quot;https://github.com/eslint/eslint/issues/3505&quot;&gt;HTML formatter&lt;/a&gt;. Designed and implemented by Julian, you can now pass &lt;code&gt;-f html&lt;/code&gt; on the command line to generate a beautiful HTML report of your ESLint results.&lt;/p&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;no-useless-concat&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3506&quot;&gt;#3506&lt;/a&gt;) (Henry Zhu)&lt;/li&gt;
&lt;li&gt;New: Added HTML formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3505&quot;&gt;#3505&lt;/a&gt;) (Julian Laval)&lt;/li&gt;
&lt;li&gt;New: Protractor environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3457&quot;&gt;#3457&lt;/a&gt;) (James Whitney)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add &lt;code&gt;keywords&lt;/code&gt; flag to &lt;code&gt;consistent-as-needed&lt;/code&gt; mode in &lt;code&gt;quote-props&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3532&quot;&gt;#3532&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: adds &lt;code&gt;numbers&lt;/code&gt; option  to quote-props (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2914&quot;&gt;#2914&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Update: Return to accept &lt;code&gt;undefined&lt;/code&gt; type (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3382&quot;&gt;#3382&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Quote var name in &lt;code&gt;no-unused-vars&lt;/code&gt; error messages (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3526&quot;&gt;#3526&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Move methods to SourceCode (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3516&quot;&gt;#3516&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Add quotes around the label in  &lt;code&gt;no-empty-label&lt;/code&gt; error reports (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3526&quot;&gt;#3526&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: &lt;code&gt;newline-after-var&lt;/code&gt; Allow comment + blank after var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2852&quot;&gt;#2852&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Update: Add &lt;code&gt;unnecessary&lt;/code&gt; option to &lt;code&gt;quote-props&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3381&quot;&gt;#3381&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: separate options for block and line comments in &lt;code&gt;spaced-comment&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2897&quot;&gt;#2897&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Added “properties” option to &lt;code&gt;id-length&lt;/code&gt; rule to ignore property names. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3450&quot;&gt;#3450&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Update: add new ignore pattern options to no-unused-vars (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2321&quot;&gt;#2321&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Update: Allow pre-parsed code (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1025&quot;&gt;#1025&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/948&quot;&gt;#948&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;quote-props&lt;/code&gt; rule should ignore computed and shorthand properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3557&quot;&gt;#3557&lt;/a&gt;) (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3544&quot;&gt;#3544&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: check space after yield keyword in space-unary-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2707&quot;&gt;#2707&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Don’t try too hard to find fault in &lt;code&gt;no-implicit-coercion&lt;/code&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3402&quot;&gt;#3402&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Detect ternary operator in operator-linebreak rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3274&quot;&gt;#3274&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: ASI indentation issue (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3514&quot;&gt;#3514&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Make &lt;code&gt;no-implicit-coercion&lt;/code&gt; smarter about numerical expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3510&quot;&gt;#3510&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;prefer-template&lt;/code&gt; had not been handling TemplateLiteral as literal node (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3507&quot;&gt;#3507&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; shouldn’t check the last line unless it is a punctuator (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3498&quot;&gt;#3498&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; rule does not indent when doing multi-line chain calls (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3279&quot;&gt;#3279&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: sort-vars rule fails when memo is undefined (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3474&quot;&gt;#3474&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;brace-style&lt;/code&gt; doesn’t report some closing brace errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3486&quot;&gt;#3486&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; does not check FunctionDeclaration nodes properly (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3173&quot;&gt;#3173&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add config comments for rule examples ‘accessor-pairs’ to ‘no-extra-semi’ (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2271&quot;&gt;#2271&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: (curly) Fix broken code in example (Kent C. Dodds)&lt;/li&gt;
&lt;li&gt;Docs: Clearer plugin rule configuration (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2022&quot;&gt;#2022&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Turn off Liquid in example (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Mention CommonJS along with Node.js (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3388&quot;&gt;#3388&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Make it clear which rules are recommended (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3398&quot;&gt;#3398&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add links to JSON Schema resources (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3411&quot;&gt;#3411&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add more info to migration guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3439&quot;&gt;#3439&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Added section to shareable config (Gregory Waxman)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Autogenerate release blog post (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3562&quot;&gt;#3562&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 1.2.1 released</title>
    <link href="https://eslint.org/blog/2015/08/eslint-1.2.1-released/"/>
    <updated>2015-08-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/08/eslint-1.2.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: “key-spacing” crashes eslint on object literal shorthand properties  (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3463&quot;&gt;#3463&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;object-curly-spacing&lt;/code&gt; shows the incorrect column for opening brace (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3438&quot;&gt;#3438&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;prefer-arrow-callback&lt;/code&gt; false positive at recursive functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3454&quot;&gt;#3454&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: ignore leading space check for &lt;code&gt;null&lt;/code&gt; elements in comma-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3392&quot;&gt;#3392&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: one-var rule doesn’t have default options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3449&quot;&gt;#3449&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Refactor &lt;code&gt;no-duplicate-case&lt;/code&gt; to be simpler and more efficient (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3440&quot;&gt;#3440&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: &lt;code&gt;object-curly-spacing&lt;/code&gt; doc is inaccurate about exceptions (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Docs: Fix trailing spaces in README (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update gyandeeps and add byk (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update plugins documentation for 1.0.0 (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 1.2.0 released</title>
    <link href="https://eslint.org/blog/2015/08/eslint-1.2.0-released/"/>
    <updated>2015-08-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/08/eslint-1.2.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;block-spacing&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3303&quot;&gt;#3303&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;no-dupe-class-members&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3294&quot;&gt;#3294&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-arrow-callback&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3140&quot;&gt;#3140&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-template&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3014&quot;&gt;#3014&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add commonjs environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3377&quot;&gt;#3377&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New: enable &lt;code&gt;-c&lt;/code&gt; flag to accept a shareable config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2543&quot;&gt;#2543&lt;/a&gt;) (Shinnosuke Watanabe)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add support for Allman to brace-style rule, brackets on newline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3347&quot;&gt;#3347&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: add support for semicolon in comma-first setup in indent rule  (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3423&quot;&gt;#3423&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: allow disabling new-cap on object methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3172&quot;&gt;#3172&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Clean up tests for CLI config support (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2543&quot;&gt;#2543&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Improve checkstyle format (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3183&quot;&gt;#3183&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Improve error message for &lt;code&gt;indent&lt;/code&gt; rule violation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3340&quot;&gt;#3340&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Improve validation error messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3193&quot;&gt;#3193&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Make &lt;code&gt;baseConfig&lt;/code&gt; to behave as other config options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3371&quot;&gt;#3371&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Make it clear that &lt;code&gt;space-infix-ops&lt;/code&gt; support &lt;code&gt;const&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3299&quot;&gt;#3299&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Separate indent options for var, let and const (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3339&quot;&gt;#3339&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;id-length&lt;/code&gt; does not work for most of the new ES6 patterns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3286&quot;&gt;#3286&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; rule to check for last line correctly (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3327&quot;&gt;#3327&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;key-spacing.align&lt;/code&gt; doesn’t pay attention to non-whitespace before key (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3267&quot;&gt;#3267&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;valid-jsdoc&lt;/code&gt; test does not recognize aliases for &lt;code&gt;@param&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3399&quot;&gt;#3399&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Add AssignmentPattern to space-infix-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3380&quot;&gt;#3380&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Apply plugin given in CLI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3383&quot;&gt;#3383&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Fix: arrow-parens &amp;amp; destructuring/default params (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3353&quot;&gt;#3353&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: exclude &lt;code&gt;AssignmentExpression&lt;/code&gt; and &lt;code&gt;Property&lt;/code&gt; nodes from extra indentation on first line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3391&quot;&gt;#3391&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: false positive on switch ‘no duplicate case’, (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3408&quot;&gt;#3408&lt;/a&gt;) (Cristian Carlesso)&lt;/li&gt;
&lt;li&gt;Fix: Inconsistent off-by-one errors with column numbers (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3231&quot;&gt;#3231&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule errors if an array literal starts a new statement (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3328&quot;&gt;#3328&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule errors with array of objects (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3329&quot;&gt;#3329&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Keyword “else” must not be followed by a newline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3226&quot;&gt;#3226&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: object curly spacing incorrectly warning for import with default and multiple named specifiers (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3370&quot;&gt;#3370&lt;/a&gt;) (Luke Karrys)&lt;/li&gt;
&lt;li&gt;Fix: radix rule does not apply for Number.parseInt (ES6) (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3364&quot;&gt;#3364&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Regression no-catch-shadow (1.1.0) (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3322&quot;&gt;#3322&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Spaced Comment Exceptions Not Working (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3276&quot;&gt;#3276&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: trailing commas in object-curly-spacing for import/export (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3324&quot;&gt;#3324&lt;/a&gt;) (Henry Zhu)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add “Compatibility” section to linebreak-style (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;Docs: better JSDoc for indent rule (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Docs: Clarify &lt;code&gt;no-process-env&lt;/code&gt; docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3318&quot;&gt;#3318&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Clarify what an unused var is (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2342&quot;&gt;#2342&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Document the second argument of &lt;code&gt;CLIEngine.executeOnText()&lt;/code&gt; (Sindre Sorhus)&lt;/li&gt;
&lt;li&gt;Docs: Fix arrow name typo (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3309&quot;&gt;#3309&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: fix syntax error in space-before-function-paren (Fabrício Matté)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo: exception label (tienslebien)&lt;/li&gt;
&lt;li&gt;Docs: Mention double-byte character limitation in max-len (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2370&quot;&gt;#2370&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: remove note outdated in 1.0.0 (Denis Sokolov)&lt;/li&gt;
&lt;li&gt;Docs: Update docs for no-iterator (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3405&quot;&gt;#3405&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update no-unused-var docs (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: bump &lt;code&gt;espree&lt;/code&gt; dependency to &lt;code&gt;2.2.4&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3403&quot;&gt;#3403&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: automatically convert line endings in release script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2642&quot;&gt;#2642&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 1.1.0 released</title>
    <link href="https://eslint.org/blog/2015/08/eslint-1.1.0-released/"/>
    <updated>2015-08-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/08/eslint-1.1.0-released/</id>
    <content type="html">&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Added grep-style formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2991&quot;&gt;#2991&lt;/a&gt;) (Nobody Really)&lt;/li&gt;
&lt;li&gt;New: Jest environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3212&quot;&gt;#3212&lt;/a&gt;) (Darshak Parikh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: add new &lt;code&gt;multi-or-nest&lt;/code&gt; option for the &lt;code&gt;curly&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1806&quot;&gt;#1806&lt;/a&gt;) (Ivan Nikulin)&lt;/li&gt;
&lt;li&gt;Update: Added as-needed option to arrow-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3277&quot;&gt;#3277&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Update: Expose &lt;code&gt;getErrorResults&lt;/code&gt; as a static method on &lt;code&gt;CLIEngine&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3242&quot;&gt;#3242&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Expose &lt;code&gt;getFormatter&lt;/code&gt; as a static method on &lt;code&gt;CLIEngine&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3239&quot;&gt;#3239&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Split out generic AST methods into utility (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/962&quot;&gt;#962&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;accessor-pairs&lt;/code&gt; false positive (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3262&quot;&gt;#3262&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;context.getScope()&lt;/code&gt; returns correct scope in blockBindings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3254&quot;&gt;#3254&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;es6&lt;/code&gt; env had been missing &lt;code&gt;spread&lt;/code&gt; and &lt;code&gt;newTarget&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3281&quot;&gt;#3281&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;eslint-env&lt;/code&gt; in comments had not been setting &lt;code&gt;ecmaFeatures&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2134&quot;&gt;#2134&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; rule for multi-line objects and arrays (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3236&quot;&gt;#3236&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; rule for objects and nested one line blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3238&quot;&gt;#3238&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3237&quot;&gt;#3237&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; to not error on same line nodes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3228&quot;&gt;#3228&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-cond-assign&lt;/code&gt; had been missing simplest pattern (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3249&quot;&gt;#3249&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-invalid-this&lt;/code&gt; had been missing jsdoc comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3287&quot;&gt;#3287&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Check for null elements in indent rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3272&quot;&gt;#3272&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: curly-spacing missing import case (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3302&quot;&gt;#3302&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: id-length rule doesn’t catch violations in arrow function parameters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3275&quot;&gt;#3275&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Fix: Report no-spaced-func on last token before paren (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3289&quot;&gt;#3289&lt;/a&gt;) (Benjamin Woodruff)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: inquirer dependency (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3241&quot;&gt;#3241&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Adds missing “not” to &lt;a href=&quot;http://semi.md/&quot;&gt;semi.md&lt;/a&gt; (Marius Schulz)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in object-shorthand docs (Gunnar Lium)&lt;/li&gt;
&lt;li&gt;Docs: Fix wrong options in examples of key-spacing (keik)&lt;/li&gt;
&lt;li&gt;Docs: place id-match rule at correct place in &lt;a href=&quot;http://readme.md/&quot;&gt;README.md&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3245&quot;&gt;#3245&lt;/a&gt;) (Matthieu Larcher)&lt;/li&gt;
&lt;li&gt;Docs: Update &lt;a href=&quot;http://no-multi-spaces.md/&quot;&gt;no-multi-spaces.md&lt;/a&gt; (Kenneth Powers)&lt;/li&gt;
&lt;li&gt;Docs: Update &lt;a href=&quot;http://no-proto.md/&quot;&gt;no-proto.md&lt;/a&gt; (Joe Zimmerman)&lt;/li&gt;
&lt;li&gt;Docs: Use backticks for option heading (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Docs: use correct encoding for &lt;a href=&quot;http://id-match.md/&quot;&gt;id-match.md&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3246&quot;&gt;#3246&lt;/a&gt;) (Matthieu Larcher)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 1.0.0 released</title>
    <link href="https://eslint.org/blog/2015/07/eslint-1.0.0-released/"/>
    <updated>2015-07-31T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/07/eslint-1.0.0-released/</id>
    <content type="html">&lt;p&gt;In this announcement, we are including all changes from each of the release candidates to make it easier to see what changed from the release candidates to now.&lt;/p&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-1.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a major release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;latest&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@latest --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@1.0.0 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;new-language-features&quot; tabindex=&quot;-1&quot;&gt;New Language Features&lt;/h3&gt;
&lt;p&gt;1.0.0 has been upgraded to the latest version of Espree, which means you now have access to additional language features:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;newTarget&lt;/code&gt; allows you to use &lt;code&gt;new.target&lt;/code&gt; in your code.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;experimentalObjectRestSpread&lt;/code&gt; allows you to use the experimental &lt;a href=&quot;https://github.com/sebmarkbage/ecmascript-rest-spread&quot;&gt;object rest/spread&lt;/a&gt; in your code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As special note about object rest/spread: We added this as a result of feedback that this was the only feature missing from ESLint that made many React users switch to &lt;code&gt;babel-eslint&lt;/code&gt;. We thought it was silly to require React users to load an entirely separate parser for a single language feature, and since it kept being requested, we decided to add it. Keep in mind that this feature is still experimental and as such, the node types reflect that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ExperimentalRestProperty&lt;/code&gt; - represents rest properties in destructured objects&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ExperimentalSpreadProperty&lt;/code&gt; - represents spread properties in object literals&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are non-standard nodes and may change at any time. We therefore recommend that you don’t create rules that used these directly unless you are willing to have those rules break when/if these nodes are standardized.&lt;/p&gt;
&lt;p&gt;Keep in mind that this does not mean we will start supporting all experimental features, but we will continue evaluate them on a case-by-case basis.&lt;/p&gt;
&lt;h3 id=&quot;%E2%80%93reset-is-now-the-default&quot; tabindex=&quot;-1&quot;&gt;–reset is now the default&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;--reset&lt;/code&gt; behavior is now the default behavior for ESLint and the &lt;code&gt;--reset&lt;/code&gt; flag has been removed. This means there are no rules on by default in ESLint; you must enable the rules that you want. For more information on this change and how it affects you, please see the &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-1.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;missing-rules-handled-safely&quot; tabindex=&quot;-1&quot;&gt;Missing rules handled safely&lt;/h3&gt;
&lt;p&gt;In previous version, a missing rule would immediately cause ESLint to crash and exit. In this version, ESLint will just warn you about the missing rule, and if the rule has been replaced by something else, will tell you what rule to use instead.&lt;/p&gt;
&lt;h2 id=&quot;deprecating-eslint-tester&quot; tabindex=&quot;-1&quot;&gt;Deprecating eslint-tester&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;eslint-tester&lt;/code&gt; module, which has long been the primary tester for ESLint rules, has now been moved into the &lt;code&gt;eslint&lt;/code&gt; module and renamed to &lt;code&gt;RuleTester&lt;/code&gt;. This was the result of a difficult relationship between these two modules that created circular dependencies and was causing a lot of problems in rule tests. Moving the tester into the &lt;code&gt;eslint&lt;/code&gt; module fixed a lot of those issues. Please see the &lt;a href=&quot;https://eslint.org/docs/user-guide/migrating-to-1.0.0&quot;&gt;migration guide&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/arrow-parens&quot;&gt;&lt;code&gt;arrow-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/arrow-spacing&quot;&gt;&lt;code&gt;arrow-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/callback-return&quot;&gt;&lt;code&gt;callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/id-length&quot;&gt;&lt;code&gt;id-length&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/id-match&quot;&gt;&lt;code&gt;id-match&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/init-declarations&quot;&gt;&lt;code&gt;init-declarations&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-class-assign&quot;&gt;&lt;code&gt;no-class-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-const-assign&quot;&gt;&lt;code&gt;no-const-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-implicit-coercion&quot;&gt;&lt;code&gt;no-implicit-coercion&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-invalid-this&quot;&gt;&lt;code&gt;no-invalid-this&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/no-useless-call&quot;&gt;&lt;code&gt;no-useless-call&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-reflect&quot;&gt;&lt;code&gt;prefer-reflect&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/prefer-spread&quot;&gt;&lt;code&gt;prefer-spread&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/require-yield&quot;&gt;&lt;code&gt;require-yield&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(1.0.0)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (1.0.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: &lt;code&gt;indent&lt;/code&gt; rule to have node specific options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3210&quot;&gt;#3210&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Breaking: merge &lt;code&gt;no-reserved-keys&lt;/code&gt; into &lt;code&gt;quote-props&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1539&quot;&gt;#1539&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Breaking: remove duplicate warnings of &lt;code&gt;no-undef&lt;/code&gt; from &lt;code&gt;block-scoped-var&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3201&quot;&gt;#3201&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to RuleTester (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3186&quot;&gt;#3186&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Create eslint:recommended and add to --init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2713&quot;&gt;#2713&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Breaking: Default to --reset behavior (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2100&quot;&gt;#2100&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Remove deprecated rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to 1-based columns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2284&quot;&gt;#2284&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(1.0.0)&quot; tabindex=&quot;-1&quot;&gt;Features (1.0.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add id-length rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2784&quot;&gt;#2784&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;New: add id-match rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2829&quot;&gt;#2829&lt;/a&gt;) (Matthieu Larcher)&lt;/li&gt;
&lt;li&gt;New: Add JSON formatter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3036&quot;&gt;#3036&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Features (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add ignorePattern, ignoreComments, and ignoreUrls options to max-len (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2934&quot;&gt;#2934&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2221&quot;&gt;#2221&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1661&quot;&gt;#1661&lt;/a&gt;) (Benjamin Woodruff)&lt;/li&gt;
&lt;li&gt;New: Support shared configs named &lt;code&gt;@scope/eslint-config&lt;/code&gt;, with shortcuts of &lt;code&gt;@scope&lt;/code&gt; and &lt;code&gt;@scope/&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3123&quot;&gt;#3123&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-implicit-coercion&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1621&quot;&gt;#1621&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-invalid-this&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2815&quot;&gt;#2815&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;prefer-reflect&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2939&quot;&gt;#2939&lt;/a&gt;) (Keith Cirkel)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Features (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;context.getDeclaredVariables(node)&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2801&quot;&gt;#2801&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;require-yield&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2822&quot;&gt;#2822&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add arrow-parens and arrow-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2628&quot;&gt;#2628&lt;/a&gt;) (Jxck)&lt;/li&gt;
&lt;li&gt;New: add callback-return rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/994&quot;&gt;#994&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: Add exported comment option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1200&quot;&gt;#1200&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: Add init-declarations rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2606&quot;&gt;#2606&lt;/a&gt;) (cjihrig)&lt;/li&gt;
&lt;li&gt;New: Add serviceworker environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2557&quot;&gt;#2557&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: Add support for root: true in config files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2736&quot;&gt;#2736&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-class-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2718&quot;&gt;#2718&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-const-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2719&quot;&gt;#2719&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-useless-call&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1925&quot;&gt;#1925&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;prefer-spread&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2946&quot;&gt;#2946&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Warn on missing rule definition or deprecation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1549&quot;&gt;#1549&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(1.0.0)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (1.0.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;new-cap&lt;/code&gt; supports fullnames (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2584&quot;&gt;#2584&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add embertest env (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3205&quot;&gt;#3205&lt;/a&gt;) (ismay)&lt;/li&gt;
&lt;li&gt;Update: New parameters for quote-props rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1283&quot;&gt;#1283&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1658&quot;&gt;#1658&lt;/a&gt;) (Tomasz Olędzki)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(1.0.0-rc-3)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (1.0.0-rc-3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: move redeclaration checking for builtins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3070&quot;&gt;#3070&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;props&lt;/code&gt; option of &lt;code&gt;no-param-reassign&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1600&quot;&gt;#1600&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add qunit to environments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2870&quot;&gt;#2870&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: added shared builtins list (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2972&quot;&gt;#2972&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Update: Move eslint-tester into repo (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3110&quot;&gt;#3110&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-loop-func&lt;/code&gt; allows block-scoped variables (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2517&quot;&gt;#2517&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add missing schema to rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2858&quot;&gt;#2858&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: adding some tests for no-redeclare to test named functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2953&quot;&gt;#2953&lt;/a&gt;) (Dominic Barnes)&lt;/li&gt;
&lt;li&gt;Update: Attach parent in getNodeByRangeIndex (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2863&quot;&gt;#2863&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Handle CRLF line endings in spaced-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2884&quot;&gt;#2884&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;Update: Handle CRLF line endings in spaced-comment rule - 2 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3005&quot;&gt;#3005&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Loosens regex rules around intentional fall through comments (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2811&quot;&gt;#2811&lt;/a&gt;) (greg5green)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(1.0.0)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (1.0.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;block-scoped-var&lt;/code&gt; issues (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2253&quot;&gt;#2253&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2747&quot;&gt;#2747&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2967&quot;&gt;#2967&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;indent&lt;/code&gt; error message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3220&quot;&gt;#3220&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;init-declarations&lt;/code&gt; ignores in for-in/of (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3202&quot;&gt;#3202&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;quotes&lt;/code&gt; with &lt;code&gt;&amp;quot;backtick&amp;quot;&lt;/code&gt; ignores ModuleSpecifier and LiteralPropertyName (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3181&quot;&gt;#3181&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;spaced-comment&lt;/code&gt; allows a mix of markers and exceptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2895&quot;&gt;#2895&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Check for concatenation in no-throw-literal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3099&quot;&gt;#3099&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3101&quot;&gt;#3101&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Fix: Non object rule options merge (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3179&quot;&gt;#3179&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Rule options merge (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3175&quot;&gt;#3175&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: space-after-keyword shouldn’t allow newlines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3198&quot;&gt;#3198&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: space-in-parens in Template Strings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3182&quot;&gt;#3182&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Fix: Use new ESLintTester (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3187&quot;&gt;#3187&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(1.0.0-rc-3)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (1.0.0-rc-3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;ESLintTester&lt;/code&gt; path in exposed API (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3149&quot;&gt;#3149&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;quotes&lt;/code&gt; with &lt;code&gt;&amp;quot;backtick&amp;quot;&lt;/code&gt; allows directive prologues (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3132&quot;&gt;#3132&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Check no-new-func on CallExpressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3145&quot;&gt;#3145&lt;/a&gt;) (Benjamin Woodruff)&lt;/li&gt;
&lt;li&gt;Fix: Check shareable config package prefix correctly (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3146&quot;&gt;#3146&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Make Chai and Mocha as a dependency (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3156&quot;&gt;#3156&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: traverse &lt;code&gt;ExperimentalSpread/RestProperty.argument&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3157&quot;&gt;#3157&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;arrow-spacing&lt;/code&gt; allow multi-spaces and line-endings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3079&quot;&gt;#3079&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-*-assgin&lt;/code&gt; rules support destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3029&quot;&gt;#3029&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;space-before-blocks&lt;/code&gt; to consider classes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3062&quot;&gt;#3062&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: add missing loop scopes to one-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3073&quot;&gt;#3073&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: allow empty loop body in no-extra-semi (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3075&quot;&gt;#3075&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: block-scoped-var rule incorrectly flagging break/continue with label (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3082&quot;&gt;#3082&lt;/a&gt;) (Aparajita Fishman)&lt;/li&gt;
&lt;li&gt;Fix: handles blocks in no-use-before-define (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2960&quot;&gt;#2960&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: Include phantomjs globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3064&quot;&gt;#3064&lt;/a&gt;) (Linus Unnebäck)&lt;/li&gt;
&lt;li&gt;Fix: Make no-implied-eval match more types of strings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2898&quot;&gt;#2898&lt;/a&gt;) (Benjamin Woodruff)&lt;/li&gt;
&lt;li&gt;Fix: Multi-line variable declarations indent  (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3139&quot;&gt;#3139&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: no-else-return handles multiple else-if blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3015&quot;&gt;#3015&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: Not load configs outside config with &lt;code&gt;root: true&lt;/code&gt;  (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3109&quot;&gt;#3109&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Skip rest properties in no-dupe-keys (fixes 3042) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: spaces trigger wrong in &lt;code&gt;no-useless-call&lt;/code&gt; and &lt;code&gt;prefer-spread&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3054&quot;&gt;#3054&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: strict rule supports classes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2977&quot;&gt;#2977&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Update sort-vars to ignore Array and ObjectPattern (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2954&quot;&gt;#2954&lt;/a&gt;) (Harry Ho)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-redeclare&lt;/code&gt; checks module scopes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2903&quot;&gt;#2903&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;valid-jsdoc&lt;/code&gt; counts &lt;code&gt;return&lt;/code&gt; for arrow expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2952&quot;&gt;#2952&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: add destructuring support to comma-dangle rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2911&quot;&gt;#2911&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Added missing export syntax support to the block-scoped-var rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2887&quot;&gt;#2887&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Fix: Include execScript in no-implied-eval rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2873&quot;&gt;#2873&lt;/a&gt;) (Frederik Braun)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1797&quot;&gt;#1797&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1799&quot;&gt;#1799&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2248&quot;&gt;#2248&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2343&quot;&gt;#2343&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2278&quot;&gt;#2278&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1800&quot;&gt;#1800&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule error on empty block body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2999&quot;&gt;#2999&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: indent rule should recognize single line statements with ASI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3001&quot;&gt;#3001&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3000&quot;&gt;#3000&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: lines-around-comment was crashing in some cases due to a missing check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2892&quot;&gt;#2892&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Fix: max-len to report correct column number (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2926&quot;&gt;#2926&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: multi-line + fat arrow indent (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2239&quot;&gt;#2239&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: object-shorthand computed props (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2937&quot;&gt;#2937&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: Remove invalid check inside &lt;code&gt;getJSDocComment&lt;/code&gt; function (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2938&quot;&gt;#2938&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Shallow cloning issues in eslint config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2961&quot;&gt;#2961&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Support class syntax for line-around-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2894&quot;&gt;#2894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: workaround for leading and trailing comments in padded-block (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2336&quot;&gt;#2336&lt;/a&gt; and fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2788&quot;&gt;#2788&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Yoda should ignore comparisons where both sides are constants (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2867&quot;&gt;#2867&lt;/a&gt;) (cjihrig)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(1.0.0)&quot; tabindex=&quot;-1&quot;&gt;Documentation (1.0.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Correct documentation errors for &lt;code&gt;id-length&lt;/code&gt; rule. (Jess Telford)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(1.0.0-rc-3)&quot; tabindex=&quot;-1&quot;&gt;Documentation (1.0.0-rc-3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Remove AppVeyor badge (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add config information to README (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3074&quot;&gt;#3074&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: add documentation about custom-formatters. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1260&quot;&gt;#1260&lt;/a&gt;) (royriojas)&lt;/li&gt;
&lt;li&gt;Docs: Add IanVS as committer (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add let and const examples for newline-after-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3020&quot;&gt;#3020&lt;/a&gt;) (James Whitney)&lt;/li&gt;
&lt;li&gt;Docs: Add mysticatea as committer (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;docs: additional computed-property-spacing documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2941&quot;&gt;#2941&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Docs: Clarify that bot message is automatic (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: Fix unmatched paren in rule description (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Docs: Grammar fixes in rule descriptions (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3038&quot;&gt;#3038&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Docs: incorrect syntax in the example for rule «one-var» (Alexander Burtsev)&lt;/li&gt;
&lt;li&gt;Docs: make grammar consistent in rules index (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Docs: Mention eslint-tester in migration guide (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Mention variables defined in a global comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3137&quot;&gt;#3137&lt;/a&gt;) (William Becker)&lt;/li&gt;
&lt;li&gt;Docs: New issue template (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3048&quot;&gt;#3048&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Small typo fix in no-useless-call documentation (Paul O’Shannessy)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add 1.0.0 migration guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2994&quot;&gt;#2994&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add space-in-brackets deprecation notice (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add spaced-line-comment deprecation notice (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: array-bracket-spacing examples used space-in-brackets (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: clarification in no-unused-vars (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: Clarify when not to use space-before-blocks (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: fix a typo (bartmichu)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in array-bracket-spacing rule (zallek)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in the shareable configs doc (Siddharth Kannan)&lt;/li&gt;
&lt;li&gt;Docs: missing quotes in JSON (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: remove mistaken “off by default” (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: Update changelog for 0.24.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2976&quot;&gt;#2976&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(1.0.0)&quot; tabindex=&quot;-1&quot;&gt;Build Related (1.0.0)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Remove &lt;code&gt;eslint-tester&lt;/code&gt; from devDependencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3189&quot;&gt;#3189&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Build Related (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Check commit message format at end of tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3058&quot;&gt;#3058&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Build: Increase Windows Mocha timeout (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3133&quot;&gt;#3133&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Build: readd phantomjs dependency with locked down version (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3026&quot;&gt;#3026&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Build: Remove unnecessary phantomjs devDependency (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3021&quot;&gt;#3021&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add appveyor CI system (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2923&quot;&gt;#2923&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Build: gensite target supports rule removal (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Espree to 2.2.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3011&quot;&gt;#3011&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 1.0.0-rc-3 released</title>
    <link href="https://eslint.org/blog/2015/07/eslint-1.0.0-rc-3-released/"/>
    <updated>2015-07-24T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/07/eslint-1.0.0-rc-3-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by &lt;a href=&quot;https://github.com/eslint/eslint/issues/new?body=I%27m%20using%20ESLint%20v1.0.0-rc-2%20and%20I%20(have%20some%20feedback%7Cfound%20a%20bug).%20I%20used%20this%20code%0A%0A(include%20full%20code)%0A%0Aand%20this%20configuration%0A%0A(include%20full%20configuration)%0A%0AAnd%20got%20this%20output%3A%0A%0A(include%20full%20ESLint%20output)%0A%0AI%20expected%20this%20instead%3A%0A%0A(describe%20what%20you%20thought%20should%20happen%20or%20what%20you%27d%20like%20to%20happen)&quot;&gt;creating issues&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@1.0.0-rc-3 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/1.0.0/user-guide/migrating-to-1.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h3 id=&quot;new-language-features&quot; tabindex=&quot;-1&quot;&gt;New Language Features&lt;/h3&gt;
&lt;p&gt;1.0.0-rc-2 has been upgraded to the latest version of Espree, which means you now have access to additional language features:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;newTarget&lt;/code&gt; allows you to use &lt;code&gt;new.target&lt;/code&gt; in your code.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;experimentalObjectRestSpread&lt;/code&gt; allows you to use the experimental &lt;a href=&quot;https://github.com/sebmarkbage/ecmascript-rest-spread&quot;&gt;object rest/spread&lt;/a&gt; in your code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As special note about object rest/spread: We added this as a result of feedback that this was the only feature missing from ESLint that made many React users switch to &lt;code&gt;babel-eslint&lt;/code&gt;. We thought it was silly to require React users to load an entirely separate parser for a single language feature, and since it kept being requested, we decided to add it. Keep in mind that this feature is still experimental and as such, the node types reflect that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ExperimentalRestProperty&lt;/code&gt; - represents rest properties in destructured objects&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ExperimentalSpreadProperty&lt;/code&gt; - represents spread properties in object literals&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are non-standard nodes and may change at any time. We therefore recommend that you don’t create rules that used these directly unless you are willing to have those rules break when/if these nodes are standardized.&lt;/p&gt;
&lt;p&gt;Keep in mind that this does not mean we will start supporting all experimental features, but we will continue evaluate them on a case-by-case basis.&lt;/p&gt;
&lt;h3 id=&quot;%E2%80%93reset-is-now-the-default&quot; tabindex=&quot;-1&quot;&gt;–reset is now the default&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;--reset&lt;/code&gt; behavior is now the default behavior for ESLint and the &lt;code&gt;--reset&lt;/code&gt; flag has been removed. This means there are no rules on by default in ESLint; you must enable the rules that you want. For more information on this change and how it affects you, please see the &lt;a href=&quot;https://eslint.org/docs/1.0.0/user-guide/migrating-to-1.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;missing-rules-handled-safely&quot; tabindex=&quot;-1&quot;&gt;Missing rules handled safely&lt;/h3&gt;
&lt;p&gt;In previous version, a missing rule would immediately cause ESLint to crash and exit. In this version, ESLint will just warn you about the missing rule, and if the rule has been replaced by something else, will tell you what rule to use instead.&lt;/p&gt;
&lt;h2 id=&quot;deprecating-eslint-tester&quot; tabindex=&quot;-1&quot;&gt;Deprecating eslint-tester&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;eslint-tester&lt;/code&gt; module, which has long been the primary tester for ESLint rules, has now been moved into the &lt;code&gt;eslint&lt;/code&gt; module. This was the result of a difficult relationship between these two modules that created circular dependencies and was causing a lot of problems in rule tests. Moving the tester into the &lt;code&gt;eslint&lt;/code&gt; module fixed a lot of those issues.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To address:&lt;/strong&gt; Update any references to &lt;code&gt;require(&amp;quot;eslint-tester&amp;quot;)&lt;/code&gt; to this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; ESLintTester &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;eslint&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ESLintTester&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/arrow-parens&quot;&gt;&lt;code&gt;arrow-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/arrow-spacing&quot;&gt;&lt;code&gt;arrow-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/callback-return&quot;&gt;&lt;code&gt;callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/init-declarations&quot;&gt;&lt;code&gt;init-declarations&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-class-assign&quot;&gt;&lt;code&gt;no-class-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-const-assign&quot;&gt;&lt;code&gt;no-const-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-implicit-coercion&quot;&gt;&lt;code&gt;no-implicit-coercion&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-invalid-this&quot;&gt;&lt;code&gt;no-invalid-this&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-useless-call&quot;&gt;&lt;code&gt;no-useless-call&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/prefer-reflect&quot;&gt;&lt;code&gt;prefer-reflect&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/prefer-spread&quot;&gt;&lt;code&gt;prefer-spread&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/require-yield&quot;&gt;&lt;code&gt;require-yield&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Create eslint:recommended and add to --init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2713&quot;&gt;#2713&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Breaking: Default to --reset behavior (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2100&quot;&gt;#2100&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Remove deprecated rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to 1-based columns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2284&quot;&gt;#2284&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Features (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add ignorePattern, ignoreComments, and ignoreUrls options to max-len (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2934&quot;&gt;#2934&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2221&quot;&gt;#2221&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1661&quot;&gt;#1661&lt;/a&gt;) (Benjamin Woodruff)&lt;/li&gt;
&lt;li&gt;New: Support shared configs named &lt;code&gt;@scope/eslint-config&lt;/code&gt;, with shortcuts of &lt;code&gt;@scope&lt;/code&gt; and &lt;code&gt;@scope/&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3123&quot;&gt;#3123&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-implicit-coercion&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1621&quot;&gt;#1621&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-invalid-this&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2815&quot;&gt;#2815&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;prefer-reflect&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2939&quot;&gt;#2939&lt;/a&gt;) (Keith Cirkel)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Features (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;context.getDeclaredVariables(node)&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2801&quot;&gt;#2801&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;require-yield&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2822&quot;&gt;#2822&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add arrow-parens and arrow-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2628&quot;&gt;#2628&lt;/a&gt;) (Jxck)&lt;/li&gt;
&lt;li&gt;New: add callback-return rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/994&quot;&gt;#994&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: Add exported comment option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1200&quot;&gt;#1200&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: Add init-declarations rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2606&quot;&gt;#2606&lt;/a&gt;) (cjihrig)&lt;/li&gt;
&lt;li&gt;New: Add serviceworker environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2557&quot;&gt;#2557&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: Add support for root: true in config files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2736&quot;&gt;#2736&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-class-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2718&quot;&gt;#2718&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-const-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2719&quot;&gt;#2719&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-useless-call&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1925&quot;&gt;#1925&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;prefer-spread&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2946&quot;&gt;#2946&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Warn on missing rule definition or deprecation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1549&quot;&gt;#1549&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(1.0.0-rc-3)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (1.0.0-rc-3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: move redeclaration checking for builtins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3070&quot;&gt;#3070&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;props&lt;/code&gt; option of &lt;code&gt;no-param-reassign&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1600&quot;&gt;#1600&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add qunit to environments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2870&quot;&gt;#2870&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: added shared builtins list (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2972&quot;&gt;#2972&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Update: Move eslint-tester into repo (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3110&quot;&gt;#3110&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-loop-func&lt;/code&gt; allows block-scoped variables (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2517&quot;&gt;#2517&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add missing schema to rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2858&quot;&gt;#2858&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: adding some tests for no-redeclare to test named functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2953&quot;&gt;#2953&lt;/a&gt;) (Dominic Barnes)&lt;/li&gt;
&lt;li&gt;Update: Attach parent in getNodeByRangeIndex (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2863&quot;&gt;#2863&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Handle CRLF line endings in spaced-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2884&quot;&gt;#2884&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;Update: Handle CRLF line endings in spaced-comment rule - 2 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3005&quot;&gt;#3005&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Loosens regex rules around intentional fall through comments (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2811&quot;&gt;#2811&lt;/a&gt;) (greg5green)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(1.0.0-rc-3)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (1.0.0-rc-3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;ESLintTester&lt;/code&gt; path in exposed API (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3149&quot;&gt;#3149&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;quotes&lt;/code&gt; with &lt;code&gt;&amp;quot;backtick&amp;quot;&lt;/code&gt; allows directive prologues (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3132&quot;&gt;#3132&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Check no-new-func on CallExpressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3145&quot;&gt;#3145&lt;/a&gt;) (Benjamin Woodruff)&lt;/li&gt;
&lt;li&gt;Fix: Check shareable config package prefix correctly (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3146&quot;&gt;#3146&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Make Chai and Mocha as a dependency (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3156&quot;&gt;#3156&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: traverse &lt;code&gt;ExperimentalSpread/RestProperty.argument&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3157&quot;&gt;#3157&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;arrow-spacing&lt;/code&gt; allow multi-spaces and line-endings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3079&quot;&gt;#3079&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-*-assgin&lt;/code&gt; rules support destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3029&quot;&gt;#3029&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;space-before-blocks&lt;/code&gt; to consider classes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3062&quot;&gt;#3062&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: add missing loop scopes to one-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3073&quot;&gt;#3073&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: allow empty loop body in no-extra-semi (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3075&quot;&gt;#3075&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: block-scoped-var rule incorrectly flagging break/continue with label (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3082&quot;&gt;#3082&lt;/a&gt;) (Aparajita Fishman)&lt;/li&gt;
&lt;li&gt;Fix: handles blocks in no-use-before-define (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2960&quot;&gt;#2960&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: Include phantomjs globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3064&quot;&gt;#3064&lt;/a&gt;) (Linus Unnebäck)&lt;/li&gt;
&lt;li&gt;Fix: Make no-implied-eval match more types of strings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2898&quot;&gt;#2898&lt;/a&gt;) (Benjamin Woodruff)&lt;/li&gt;
&lt;li&gt;Fix: Multi-line variable declarations indent  (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3139&quot;&gt;#3139&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: no-else-return handles multiple else-if blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3015&quot;&gt;#3015&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: Not load configs outside config with &lt;code&gt;root: true&lt;/code&gt;  (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3109&quot;&gt;#3109&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Skip rest properties in no-dupe-keys (fixes 3042) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: spaces trigger wrong in &lt;code&gt;no-useless-call&lt;/code&gt; and &lt;code&gt;prefer-spread&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3054&quot;&gt;#3054&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: strict rule supports classes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2977&quot;&gt;#2977&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Update sort-vars to ignore Array and ObjectPattern (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2954&quot;&gt;#2954&lt;/a&gt;) (Harry Ho)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-redeclare&lt;/code&gt; checks module scopes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2903&quot;&gt;#2903&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;valid-jsdoc&lt;/code&gt; counts &lt;code&gt;return&lt;/code&gt; for arrow expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2952&quot;&gt;#2952&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: add destructuring support to comma-dangle rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2911&quot;&gt;#2911&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Added missing export syntax support to the block-scoped-var rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2887&quot;&gt;#2887&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Fix: Include execScript in no-implied-eval rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2873&quot;&gt;#2873&lt;/a&gt;) (Frederik Braun)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1797&quot;&gt;#1797&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1799&quot;&gt;#1799&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2248&quot;&gt;#2248&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2343&quot;&gt;#2343&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2278&quot;&gt;#2278&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1800&quot;&gt;#1800&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule error on empty block body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2999&quot;&gt;#2999&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: indent rule should recognize single line statements with ASI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3001&quot;&gt;#3001&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3000&quot;&gt;#3000&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: lines-around-comment was crashing in some cases due to a missing check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2892&quot;&gt;#2892&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Fix: max-len to report correct column number (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2926&quot;&gt;#2926&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: multi-line + fat arrow indent (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2239&quot;&gt;#2239&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: object-shorthand computed props (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2937&quot;&gt;#2937&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: Remove invalid check inside &lt;code&gt;getJSDocComment&lt;/code&gt; function (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2938&quot;&gt;#2938&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Shallow cloning issues in eslint config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2961&quot;&gt;#2961&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Support class syntax for line-around-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2894&quot;&gt;#2894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: workaround for leading and trailing comments in padded-block (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2336&quot;&gt;#2336&lt;/a&gt; and fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2788&quot;&gt;#2788&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Yoda should ignore comparisons where both sides are constants (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2867&quot;&gt;#2867&lt;/a&gt;) (cjihrig)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(1.0.0-rc-3)&quot; tabindex=&quot;-1&quot;&gt;Documentation (1.0.0-rc-3)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Remove AppVeyor badge (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add config information to README (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3074&quot;&gt;#3074&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: add documentation about custom-formatters. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1260&quot;&gt;#1260&lt;/a&gt;) (royriojas)&lt;/li&gt;
&lt;li&gt;Docs: Add IanVS as committer (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add let and const examples for newline-after-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3020&quot;&gt;#3020&lt;/a&gt;) (James Whitney)&lt;/li&gt;
&lt;li&gt;Docs: Add mysticatea as committer (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;docs: additional computed-property-spacing documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2941&quot;&gt;#2941&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Docs: Clarify that bot message is automatic (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: Fix unmatched paren in rule description (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Docs: Grammar fixes in rule descriptions (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3038&quot;&gt;#3038&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Docs: incorrect syntax in the example for rule «one-var» (Alexander Burtsev)&lt;/li&gt;
&lt;li&gt;Docs: make grammar consistent in rules index (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Docs: Mention eslint-tester in migration guide (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Mention variables defined in a global comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3137&quot;&gt;#3137&lt;/a&gt;) (William Becker)&lt;/li&gt;
&lt;li&gt;Docs: New issue template (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3048&quot;&gt;#3048&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Small typo fix in no-useless-call documentation (Paul O’Shannessy)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add 1.0.0 migration guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2994&quot;&gt;#2994&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add space-in-brackets deprecation notice (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add spaced-line-comment deprecation notice (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: array-bracket-spacing examples used space-in-brackets (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: clarification in no-unused-vars (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: Clarify when not to use space-before-blocks (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: fix a typo (bartmichu)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in array-bracket-spacing rule (zallek)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in the shareable configs doc (Siddharth Kannan)&lt;/li&gt;
&lt;li&gt;Docs: missing quotes in JSON (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: remove mistaken “off by default” (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: Update changelog for 0.24.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2976&quot;&gt;#2976&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Build Related (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Check commit message format at end of tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3058&quot;&gt;#3058&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Build: Increase Windows Mocha timeout (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3133&quot;&gt;#3133&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Build: readd phantomjs dependency with locked down version (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3026&quot;&gt;#3026&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Build: Remove unnecessary phantomjs devDependency (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3021&quot;&gt;#3021&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add appveyor CI system (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2923&quot;&gt;#2923&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Build: gensite target supports rule removal (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Espree to 2.2.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3011&quot;&gt;#3011&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 1.0.0-rc-2 released</title>
    <link href="https://eslint.org/blog/2015/07/eslint-1.0.0-rc-2-released/"/>
    <updated>2015-07-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/07/eslint-1.0.0-rc-2-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by &lt;a href=&quot;https://github.com/eslint/eslint/issues/new?body=I%27m%20using%20ESLint%20v1.0.0-rc-2%20and%20I%20(have%20some%20feedback%7Cfound%20a%20bug).%20I%20used%20this%20code%0A%0A(include%20full%20code)%0A%0Aand%20this%20configuration%0A%0A(include%20full%20configuration)%0A%0AAnd%20got%20this%20output%3A%0A%0A(include%20full%20ESLint%20output)%0A%0AI%20expected%20this%20instead%3A%0A%0A(describe%20what%20you%20thought%20should%20happen%20or%20what%20you%27d%20like%20to%20happen)&quot;&gt;creating issues&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@1.0.0-rc-2 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/1.0.0/user-guide/migrating-to-1.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h3 id=&quot;new-language-features&quot; tabindex=&quot;-1&quot;&gt;New Language Features&lt;/h3&gt;
&lt;p&gt;1.0.0-rc-2 has been upgraded to the latest version of Espree, which means you now have access to additional language features:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;newTarget&lt;/code&gt; allows you to use &lt;code&gt;new.target&lt;/code&gt; in your code.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;experimentalObjectRestSpread&lt;/code&gt; allows you to use the experimental &lt;a href=&quot;https://github.com/sebmarkbage/ecmascript-rest-spread&quot;&gt;object rest/spread&lt;/a&gt; in your code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As special note about object rest/spread: We added this as a result of feedback that this was the only feature missing from ESLint that made many React users switch to &lt;code&gt;babel-eslint&lt;/code&gt;. We thought it was silly to require React users to load an entirely separate parser for a single language feature, and since it kept being requested, we decided to add it. Keep in mind that this feature is still experimental and as such, the node types reflect that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ExperimentalRestProperty&lt;/code&gt; - represents rest properties in destructured objects&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ExperimentalSpreadProperty&lt;/code&gt; - represents spread properties in object literals&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are non-standard nodes and may change at any time. We therefore recommend that you don’t create rules that used these directly unless you are willing to have those rules break when/if these nodes are standardized.&lt;/p&gt;
&lt;p&gt;Keep in mind that this does not mean we will start supporting all experimental features, but we will continue evaluate them on a case-by-case basis.&lt;/p&gt;
&lt;h3 id=&quot;%E2%80%93reset-is-now-the-default&quot; tabindex=&quot;-1&quot;&gt;–reset is now the default&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;--reset&lt;/code&gt; behavior is now the default behavior for ESLint and the &lt;code&gt;--reset&lt;/code&gt; flag has been removed. This means there are no rules on by default in ESLint; you must enable the rules that you want. For more information on this change and how it affects you, please see the &lt;a href=&quot;https://eslint.org/docs/1.0.0/user-guide/migrating-to-1.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;missing-rules-handled-safely&quot; tabindex=&quot;-1&quot;&gt;Missing rules handled safely&lt;/h3&gt;
&lt;p&gt;In previous version, a missing rule would immediately cause ESLint to crash and exit. In this version, ESLint will just warn you about the missing rule, and if the rule has been replaced by something else, will tell you what rule to use instead.&lt;/p&gt;
&lt;h2 id=&quot;deprecating-eslint-tester&quot; tabindex=&quot;-1&quot;&gt;Deprecating eslint-tester&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;eslint-tester&lt;/code&gt; module, which has long been the primary tester for ESLint rules, has now been moved into the &lt;code&gt;eslint&lt;/code&gt; module. This was the result of a difficult relationship between these two modules that created circular dependencies and was causing a lot of problems in rule tests. Moving the tester into the &lt;code&gt;eslint&lt;/code&gt; module fixed a lot of those issues.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To address:&lt;/strong&gt; Update any references to &lt;code&gt;require(&amp;quot;eslint-tester&amp;quot;)&lt;/code&gt; to this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; ESLintTester &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;eslint&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ESLintTester&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/arrow-parens&quot;&gt;&lt;code&gt;arrow-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/arrow-spacing&quot;&gt;&lt;code&gt;arrow-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/callback-return&quot;&gt;&lt;code&gt;callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/init-declarations&quot;&gt;&lt;code&gt;init-declarations&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-class-assign&quot;&gt;&lt;code&gt;no-class-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-const-assign&quot;&gt;&lt;code&gt;no-const-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-implicit-coercion&quot;&gt;&lt;code&gt;no-implicit-coercion&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-invalid-this&quot;&gt;&lt;code&gt;no-invalid-this&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-useless-call&quot;&gt;&lt;code&gt;no-useless-call&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/prefer-reflect&quot;&gt;&lt;code&gt;prefer-reflect&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/prefer-spread&quot;&gt;&lt;code&gt;prefer-spread&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/require-yield&quot;&gt;&lt;code&gt;require-yield&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Create eslint:recommended and add to --init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2713&quot;&gt;#2713&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Breaking: Default to --reset behavior (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2100&quot;&gt;#2100&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Remove deprecated rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to 1-based columns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2284&quot;&gt;#2284&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Features (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add ignorePattern, ignoreComments, and ignoreUrls options to max-len (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2934&quot;&gt;#2934&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2221&quot;&gt;#2221&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1661&quot;&gt;#1661&lt;/a&gt;) (Benjamin Woodruff)&lt;/li&gt;
&lt;li&gt;New: Support shared configs named &lt;code&gt;@scope/eslint-config&lt;/code&gt;, with shortcuts of &lt;code&gt;@scope&lt;/code&gt; and &lt;code&gt;@scope/&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3123&quot;&gt;#3123&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-implicit-coercion&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1621&quot;&gt;#1621&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-invalid-this&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2815&quot;&gt;#2815&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;prefer-reflect&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2939&quot;&gt;#2939&lt;/a&gt;) (Keith Cirkel)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Features (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;context.getDeclaredVariables(node)&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2801&quot;&gt;#2801&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;require-yield&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2822&quot;&gt;#2822&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add arrow-parens and arrow-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2628&quot;&gt;#2628&lt;/a&gt;) (Jxck)&lt;/li&gt;
&lt;li&gt;New: add callback-return rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/994&quot;&gt;#994&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: Add exported comment option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1200&quot;&gt;#1200&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: Add init-declarations rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2606&quot;&gt;#2606&lt;/a&gt;) (cjihrig)&lt;/li&gt;
&lt;li&gt;New: Add serviceworker environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2557&quot;&gt;#2557&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: Add support for root: true in config files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2736&quot;&gt;#2736&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-class-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2718&quot;&gt;#2718&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-const-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2719&quot;&gt;#2719&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-useless-call&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1925&quot;&gt;#1925&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;prefer-spread&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2946&quot;&gt;#2946&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Warn on missing rule definition or deprecation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1549&quot;&gt;#1549&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;props&lt;/code&gt; option of &lt;code&gt;no-param-reassign&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1600&quot;&gt;#1600&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add qunit to environments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2870&quot;&gt;#2870&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: added shared builtins list (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2972&quot;&gt;#2972&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Update: Move eslint-tester into repo (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3110&quot;&gt;#3110&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Enhancements (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-loop-func&lt;/code&gt; allows block-scoped variables (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2517&quot;&gt;#2517&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add missing schema to rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2858&quot;&gt;#2858&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: adding some tests for no-redeclare to test named functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2953&quot;&gt;#2953&lt;/a&gt;) (Dominic Barnes)&lt;/li&gt;
&lt;li&gt;Update: Attach parent in getNodeByRangeIndex (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2863&quot;&gt;#2863&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Handle CRLF line endings in spaced-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2884&quot;&gt;#2884&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;Update: Handle CRLF line endings in spaced-comment rule - 2 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3005&quot;&gt;#3005&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Loosens regex rules around intentional fall through comments (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2811&quot;&gt;#2811&lt;/a&gt;) (greg5green)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;arrow-spacing&lt;/code&gt; allow multi-spaces and line-endings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3079&quot;&gt;#3079&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-*-assgin&lt;/code&gt; rules support destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3029&quot;&gt;#3029&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;space-before-blocks&lt;/code&gt; to consider classes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3062&quot;&gt;#3062&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: add missing loop scopes to one-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3073&quot;&gt;#3073&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: allow empty loop body in no-extra-semi (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3075&quot;&gt;#3075&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: block-scoped-var rule incorrectly flagging break/continue with label (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3082&quot;&gt;#3082&lt;/a&gt;) (Aparajita Fishman)&lt;/li&gt;
&lt;li&gt;Fix: handles blocks in no-use-before-define (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2960&quot;&gt;#2960&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: Include phantomjs globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3064&quot;&gt;#3064&lt;/a&gt;) (Linus Unnebäck)&lt;/li&gt;
&lt;li&gt;Fix: Make no-implied-eval match more types of strings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2898&quot;&gt;#2898&lt;/a&gt;) (Benjamin Woodruff)&lt;/li&gt;
&lt;li&gt;Fix: Multi-line variable declarations indent  (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3139&quot;&gt;#3139&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: no-else-return handles multiple else-if blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3015&quot;&gt;#3015&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: Not load configs outside config with &lt;code&gt;root: true&lt;/code&gt;  (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3109&quot;&gt;#3109&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Skip rest properties in no-dupe-keys (fixes 3042) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: spaces trigger wrong in &lt;code&gt;no-useless-call&lt;/code&gt; and &lt;code&gt;prefer-spread&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3054&quot;&gt;#3054&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: strict rule supports classes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2977&quot;&gt;#2977&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Update sort-vars to ignore Array and ObjectPattern (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2954&quot;&gt;#2954&lt;/a&gt;) (Harry Ho)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-redeclare&lt;/code&gt; checks module scopes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2903&quot;&gt;#2903&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;valid-jsdoc&lt;/code&gt; counts &lt;code&gt;return&lt;/code&gt; for arrow expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2952&quot;&gt;#2952&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: add destructuring support to comma-dangle rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2911&quot;&gt;#2911&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Added missing export syntax support to the block-scoped-var rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2887&quot;&gt;#2887&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Fix: Include execScript in no-implied-eval rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2873&quot;&gt;#2873&lt;/a&gt;) (Frederik Braun)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1797&quot;&gt;#1797&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1799&quot;&gt;#1799&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2248&quot;&gt;#2248&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2343&quot;&gt;#2343&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2278&quot;&gt;#2278&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1800&quot;&gt;#1800&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule error on empty block body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2999&quot;&gt;#2999&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: indent rule should recognize single line statements with ASI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3001&quot;&gt;#3001&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3000&quot;&gt;#3000&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: lines-around-comment was crashing in some cases due to a missing check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2892&quot;&gt;#2892&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Fix: max-len to report correct column number (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2926&quot;&gt;#2926&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: multi-line + fat arrow indent (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2239&quot;&gt;#2239&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: object-shorthand computed props (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2937&quot;&gt;#2937&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: Remove invalid check inside &lt;code&gt;getJSDocComment&lt;/code&gt; function (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2938&quot;&gt;#2938&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Shallow cloning issues in eslint config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2961&quot;&gt;#2961&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Support class syntax for line-around-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2894&quot;&gt;#2894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: workaround for leading and trailing comments in padded-block (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2336&quot;&gt;#2336&lt;/a&gt; and fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2788&quot;&gt;#2788&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Yoda should ignore comparisons where both sides are constants (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2867&quot;&gt;#2867&lt;/a&gt;) (cjihrig)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Documentation (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add config information to README (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3074&quot;&gt;#3074&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: add documentation about custom-formatters. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1260&quot;&gt;#1260&lt;/a&gt;) (royriojas)&lt;/li&gt;
&lt;li&gt;Docs: Add IanVS as committer (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add let and const examples for newline-after-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3020&quot;&gt;#3020&lt;/a&gt;) (James Whitney)&lt;/li&gt;
&lt;li&gt;Docs: Add mysticatea as committer (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;docs: additional computed-property-spacing documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2941&quot;&gt;#2941&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Docs: Clarify that bot message is automatic (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: Fix unmatched paren in rule description (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Docs: Grammar fixes in rule descriptions (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/3038&quot;&gt;#3038&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Docs: incorrect syntax in the example for rule «one-var» (Alexander Burtsev)&lt;/li&gt;
&lt;li&gt;Docs: make grammar consistent in rules index (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Docs: Mention eslint-tester in migration guide (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Mention variables defined in a global comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3137&quot;&gt;#3137&lt;/a&gt;) (William Becker)&lt;/li&gt;
&lt;li&gt;Docs: New issue template (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3048&quot;&gt;#3048&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Small typo fix in no-useless-call documentation (Paul O’Shannessy)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Documentation (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add 1.0.0 migration guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2994&quot;&gt;#2994&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add space-in-brackets deprecation notice (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add spaced-line-comment deprecation notice (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: array-bracket-spacing examples used space-in-brackets (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: clarification in no-unused-vars (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: Clarify when not to use space-before-blocks (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: fix a typo (bartmichu)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in array-bracket-spacing rule (zallek)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in the shareable configs doc (Siddharth Kannan)&lt;/li&gt;
&lt;li&gt;Docs: missing quotes in JSON (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: remove mistaken “off by default” (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: Update changelog for 0.24.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2976&quot;&gt;#2976&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(1.0.0-rc-2)&quot; tabindex=&quot;-1&quot;&gt;Build Related (1.0.0-rc-2)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Check commit message format at end of tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3058&quot;&gt;#3058&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Build: Increase Windows Mocha timeout (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3133&quot;&gt;#3133&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Build: readd phantomjs dependency with locked down version (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3026&quot;&gt;#3026&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Build: Remove unnecessary phantomjs devDependency (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3021&quot;&gt;#3021&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Build Related (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add appveyor CI system (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2923&quot;&gt;#2923&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Build: gensite target supports rule removal (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades-(1.0.0-rc-1)&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades (1.0.0-rc-1)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Espree to 2.2.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3011&quot;&gt;#3011&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 1.0.0-rc-1 released</title>
    <link href="https://eslint.org/blog/2015/07/eslint-1.0.0-rc-1-released/"/>
    <updated>2015-07-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/07/eslint-1.0.0-rc-1-released/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This version of ESLint is not ready for production use and is provided to gather feedback from the community before releasing the final version. Please let us know if you having any problems or feedback by &lt;a href=&quot;https://github.com/eslint/eslint/issues/new?body=I%27m%20using%20ESLint%20v1.0.0-rc-1%20and%20I%20(have%20some%20feedback%7Cfound%20a%20bug).%20I%20used%20this%20code%0A%0A(include%20full%20code)%0A%0Aand%20this%20configuration%0A%0A(include%20full%20configuration)%0A%0AAnd%20got%20this%20output%3A%0A%0A(include%20full%20ESLint%20output)%0A%0AI%20expected%20this%20instead%3A%0A%0A(describe%20what%20you%20thought%20should%20happen%20or%20what%20you%27d%20like%20to%20happen)&quot;&gt;creating issues&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;installing&quot; tabindex=&quot;-1&quot;&gt;Installing&lt;/h3&gt;
&lt;p&gt;Since this is a pre-release version, you will not automatically be upgraded by npm. You must specify the &lt;code&gt;next&lt;/code&gt; tag when installing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@next --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also specify the version directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i eslint@1.0.0-rc-1 --save-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;migration-guide&quot; tabindex=&quot;-1&quot;&gt;Migration Guide&lt;/h3&gt;
&lt;p&gt;As there are a lot of changes, we’ve created a &lt;a href=&quot;https://eslint.org/docs/1.0.0/user-guide/migrating-to-1.0.0&quot;&gt;migration guide&lt;/a&gt; describing the changes in great detail along with the steps you should take to address them. Not all ESLint users will be affected by the changes, however, the changes are big enough that we recommend everyone read the migration thoroughly.&lt;/p&gt;
&lt;h3 id=&quot;new-language-features&quot; tabindex=&quot;-1&quot;&gt;New Language Features&lt;/h3&gt;
&lt;p&gt;1.0.0-rc-1 has been upgraded to the latest version of Espree, which means you now have access to additional language features:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;newTarget&lt;/code&gt; allows you to use &lt;code&gt;new.target&lt;/code&gt; in your code.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;experimentalObjectRestSpread&lt;/code&gt; allows you to use the experimental &lt;a href=&quot;https://github.com/sebmarkbage/ecmascript-rest-spread&quot;&gt;object rest/spread&lt;/a&gt; in your code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As special note about object rest/spread: We added this as a result of feedback that this was the only feature missing from ESLint that made many React users switch to &lt;code&gt;babel-eslint&lt;/code&gt;. We thought it was silly to require React users to load an entirely separate parser for a single language feature, and since it kept being requested, we decided to add it. Keep in mind that this feature is still experimental and as such, the node types reflect that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ExperimentalRestProperty&lt;/code&gt; - represents rest properties in destructured objects&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ExperimentalSpreadProperty&lt;/code&gt; - represents spread properties in object literals&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are non-standard nodes and may change at any time. We therefore recommend that you don’t create rules that used these directly unless you are willing to have those rules break when/if these nodes are standardized.&lt;/p&gt;
&lt;p&gt;Keep in mind that this does not mean we will start supporting all experimental features, but we will continue evaluate them on a case-by-case basis.&lt;/p&gt;
&lt;h3 id=&quot;%E2%80%93reset-is-now-the-default&quot; tabindex=&quot;-1&quot;&gt;–reset is now the default&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;--reset&lt;/code&gt; behavior is now the default behavior for ESLint and the &lt;code&gt;--reset&lt;/code&gt; flag has been removed. This means there are no rules on by default in ESLint; you must enable the rules that you want. For more information on this change and how it affects you, please see the &lt;a href=&quot;https://eslint.org/docs/1.0.0/user-guide/migrating-to-1.0.0&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;missing-rules-handled-safely&quot; tabindex=&quot;-1&quot;&gt;Missing rules handled safely&lt;/h3&gt;
&lt;p&gt;In previous version, a missing rule would immediately cause ESLint to crash and exit. In this version, ESLint will just warn you about the missing rule, and if the rule has been replaced by something else, will tell you what rule to use instead.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;p&gt;There are several new rules for this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/arrow-parens&quot;&gt;&lt;code&gt;arrow-parens&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/arrow-spacing&quot;&gt;&lt;code&gt;arrow-spacing&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/callback-return&quot;&gt;&lt;code&gt;callback-return&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/init-declarations&quot;&gt;&lt;code&gt;init-declarations&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-class-assign&quot;&gt;&lt;code&gt;no-class-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-const-assign&quot;&gt;&lt;code&gt;no-const-assign&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/no-useless-call&quot;&gt;&lt;code&gt;no-useless-call&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/prefer-spread&quot;&gt;&lt;code&gt;prefer-spread&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/1.0.0/rules/require-yield&quot;&gt;&lt;code&gt;require-yield&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Create eslint:recommended and add to --init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2713&quot;&gt;#2713&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Breaking: Default to --reset behavior (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2100&quot;&gt;#2100&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Remove deprecated rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Breaking: Switch to 1-based columns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2284&quot;&gt;#2284&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;context.getDeclaredVariables(node)&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2801&quot;&gt;#2801&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;require-yield&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2822&quot;&gt;#2822&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Add arrow-parens and arrow-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2628&quot;&gt;#2628&lt;/a&gt;) (Jxck)&lt;/li&gt;
&lt;li&gt;New: add callback-return rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/994&quot;&gt;#994&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: Add exported comment option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1200&quot;&gt;#1200&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: Add init-declarations rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2606&quot;&gt;#2606&lt;/a&gt;) (cjihrig)&lt;/li&gt;
&lt;li&gt;New: Add serviceworker environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2557&quot;&gt;#2557&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: Add support for root: true in config files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2736&quot;&gt;#2736&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-class-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2718&quot;&gt;#2718&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-const-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2719&quot;&gt;#2719&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;no-useless-call&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1925&quot;&gt;#1925&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: the &lt;code&gt;prefer-spread&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2946&quot;&gt;#2946&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: Warn on missing rule definition or deprecation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1549&quot;&gt;#1549&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: &lt;code&gt;no-loop-func&lt;/code&gt; allows block-scoped variables (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2517&quot;&gt;#2517&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add missing schema to rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2858&quot;&gt;#2858&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: adding some tests for no-redeclare to test named functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2953&quot;&gt;#2953&lt;/a&gt;) (Dominic Barnes)&lt;/li&gt;
&lt;li&gt;Update: Attach parent in getNodeByRangeIndex (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2863&quot;&gt;#2863&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Handle CRLF line endings in spaced-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2884&quot;&gt;#2884&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;Update: Handle CRLF line endings in spaced-comment rule - 2 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3005&quot;&gt;#3005&lt;/a&gt;) (Burak Yigit Kaya)&lt;/li&gt;
&lt;li&gt;Update: Loosens regex rules around intentional fall through comments (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2811&quot;&gt;#2811&lt;/a&gt;) (greg5green)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-redeclare&lt;/code&gt; checks module scopes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2903&quot;&gt;#2903&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;valid-jsdoc&lt;/code&gt; counts &lt;code&gt;return&lt;/code&gt; for arrow expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2952&quot;&gt;#2952&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: add destructuring support to comma-dangle rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2911&quot;&gt;#2911&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Added missing export syntax support to the block-scoped-var rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2887&quot;&gt;#2887&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Fix: Include execScript in no-implied-eval rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2873&quot;&gt;#2873&lt;/a&gt;) (Frederik Braun)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1797&quot;&gt;#1797&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1799&quot;&gt;#1799&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2248&quot;&gt;#2248&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2343&quot;&gt;#2343&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2278&quot;&gt;#2278&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1800&quot;&gt;#1800&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Indent rule error on empty block body (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2999&quot;&gt;#2999&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: indent rule should recognize single line statements with ASI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3001&quot;&gt;#3001&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3000&quot;&gt;#3000&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: lines-around-comment was crashing in some cases due to a missing check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2892&quot;&gt;#2892&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Fix: max-len to report correct column number (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2926&quot;&gt;#2926&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: multi-line + fat arrow indent (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2239&quot;&gt;#2239&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: object-shorthand computed props (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2937&quot;&gt;#2937&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: Remove invalid check inside &lt;code&gt;getJSDocComment&lt;/code&gt; function (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2938&quot;&gt;#2938&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Shallow cloning issues in eslint config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2961&quot;&gt;#2961&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Support class syntax for line-around-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2894&quot;&gt;#2894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: workaround for leading and trailing comments in padded-block (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2336&quot;&gt;#2336&lt;/a&gt; and fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2788&quot;&gt;#2788&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Yoda should ignore comparisons where both sides are constants (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2867&quot;&gt;#2867&lt;/a&gt;) (cjihrig)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add 1.0.0 migration guide (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2994&quot;&gt;#2994&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add space-in-brackets deprecation notice (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add spaced-line-comment deprecation notice (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: array-bracket-spacing examples used space-in-brackets (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: clarification in no-unused-vars (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: Clarify when not to use space-before-blocks (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: fix a typo (bartmichu)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo (Bryan Smith)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in array-bracket-spacing rule (zallek)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in the shareable configs doc (Siddharth Kannan)&lt;/li&gt;
&lt;li&gt;Docs: missing quotes in JSON (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: remove mistaken “off by default” (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: Update changelog for 0.24.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2976&quot;&gt;#2976&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add appveyor CI system (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2923&quot;&gt;#2923&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Build: gensite target supports rule removal (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Espree to 2.2.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/3011&quot;&gt;#3011&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.24.1 released</title>
    <link href="https://eslint.org/blog/2015/07/eslint-0.24.1-released/"/>
    <updated>2015-07-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/07/eslint-0.24.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-redeclare&lt;/code&gt; checks module scopes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2903&quot;&gt;#2903&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: add destructuring support to comma-dangle rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2911&quot;&gt;#2911&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Added missing export syntax support to the block-scoped-var rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2887&quot;&gt;#2887&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Fix: Include execScript in no-implied-eval rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2873&quot;&gt;#2873&lt;/a&gt;) (Frederik Braun)&lt;/li&gt;
&lt;li&gt;Fix: lines-around-comment was crashing in some cases due to a missing check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2892&quot;&gt;#2892&lt;/a&gt;) (Mathieu M-Gosselin)&lt;/li&gt;
&lt;li&gt;Fix: max-len to report correct column number (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2926&quot;&gt;#2926&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: object-shorthand computed props (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2937&quot;&gt;#2937&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: Remove invalid check inside &lt;code&gt;getJSDocComment&lt;/code&gt; function (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2938&quot;&gt;#2938&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Revert 1-based column changes in tests for patch (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2284&quot;&gt;#2284&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Shallow cloning issues in eslint config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2961&quot;&gt;#2961&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Support class syntax for line-around-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2894&quot;&gt;#2894&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Yoda should ignore comparisons where both sides are constants (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2867&quot;&gt;#2867&lt;/a&gt;) (cjihrig)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add space-in-brackets deprecation notice (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Add spaced-line-comment deprecation notice (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: array-bracket-spacing examples used space-in-brackets (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: clarification in no-unused-vars (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: Clarify when not to use space-before-blocks (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in the shareable configs doc (Siddharth Kannan)&lt;/li&gt;
&lt;li&gt;Docs: missing quotes in JSON (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: remove mistaken “off by default” (Jan Schär)&lt;/li&gt;
&lt;li&gt;Docs: remove mistaken “off by default” (Jan Schär)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Preparing for 1.0.0</title>
    <link href="https://eslint.org/blog/2015/06/preparing-for-1.0.0/"/>
    <updated>2015-06-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/06/preparing-for-1.0.0/</id>
    <content type="html">&lt;h2 id=&quot;creation-of-0.x-branch&quot; tabindex=&quot;-1&quot;&gt;Creation of 0.x Branch&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;0.x&lt;/code&gt; branch on the public repo is a record of the last release of the 0.x version tree. The &lt;code&gt;master&lt;/code&gt; branch will be the work for 1.0.0. If bug fixes or other changes are needed before 1.0.0 is ready, then those changes will be cherry-picked onto the &lt;code&gt;0.x&lt;/code&gt; branch and a release will be made from that.&lt;/p&gt;
&lt;p&gt;We do not plan on having a 0.25.0 release - this will only happen if 1.0.0 is significantly delayed.&lt;/p&gt;
&lt;h2 id=&quot;1.0.0-release-candidates&quot; tabindex=&quot;-1&quot;&gt;1.0.0 Release Candidates&lt;/h2&gt;
&lt;p&gt;Because 1.0.0 is a major release with significant breaking changes, we will be doing several release candidates before finalizing the 1.0.0 release. We will do this periodically as changes are being merged. The intent is to give everyone a chance to try out the upgrade path and provide feedback. Release candidate version will be appended with &lt;code&gt;rc-&lt;/code&gt; to indicate that these are not considered production-ready.&lt;/p&gt;
&lt;h2 id=&quot;1.0.0-migration-docs&quot; tabindex=&quot;-1&quot;&gt;1.0.0 Migration Docs&lt;/h2&gt;
&lt;p&gt;With each release candidate, we will update migrations documentation. The jump from 0.24.0 to 1.0.0 is a big one, and we’re looking for your feedback to help make the transition smooth. The first draft of the migration docs will come out with the first release candidate.&lt;/p&gt;
&lt;h2 id=&quot;your-feedback-matters&quot; tabindex=&quot;-1&quot;&gt;Your Feedback Matters&lt;/h2&gt;
&lt;p&gt;We know you’ve come to rely on ESLint for maintaining the quality of your code, so your feedback is really important in this process. Please contact us as frequently as necessary to get your questions answers and to let us know how the upgrade is going for you.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.24.0 released</title>
    <link href="https://eslint.org/blog/2015/06/eslint-0.24.0-released/"/>
    <updated>2015-06-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/06/eslint-0.24.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;1.0.0-work-beginning&quot; tabindex=&quot;-1&quot;&gt;1.0.0 Work Beginning&lt;/h3&gt;
&lt;p&gt;0.24.0 is the last planned release prior to 1.0.0. We focused mostly on bug fixes and filling functionality gaps in this release, so we are better prepared for 1.0.0. We will still do bugfix releases as necessary, see &lt;a href=&quot;https://eslint.org/blog/2015/06/eslint-0.24.0-released/preparing-for-1.0.0&quot;&gt;the release plans&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h3 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;constructor-super&lt;/code&gt; - ensures &lt;code&gt;super()&lt;/code&gt; is called in derived class constructors&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-this-before-super&lt;/code&gt; - ensures &lt;code&gt;this&lt;/code&gt; isn’t used before &lt;code&gt;super&lt;/code&gt; in derived class constructors&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-unexpected-multiline&lt;/code&gt; - ensures function calls and property access are wholly on one line&lt;/li&gt;
&lt;li&gt;&lt;code&gt;array-bracket-spacing&lt;/code&gt; - ensures proper spacing of array literal brackets&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-extra-semi&lt;/code&gt; in class bodies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2794&quot;&gt;#2794&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Add --init to the CLI options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2817&quot;&gt;#2817&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Allow blocked comments with markers and new-line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2777&quot;&gt;#2777&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: arraysInObjects for object-curly-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2752&quot;&gt;#2752&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: Check type to be file when looking for config files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2790&quot;&gt;#2790&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: comma-dangle always-multiline: no comma right before the last brace (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2091&quot;&gt;#2091&lt;/a&gt;) (Benoît Zugmeyer)&lt;/li&gt;
&lt;li&gt;Fix: context report message to handle more scenarios (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2746&quot;&gt;#2746&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: handle-callback-err missing arrow functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2823&quot;&gt;#2823&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: no-dupe-args sparse array crash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2848&quot;&gt;#2848&lt;/a&gt;) (Chris Walker)&lt;/li&gt;
&lt;li&gt;Fix: No-shadow rule duplicating error messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2706&quot;&gt;#2706&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Fix: object literals in arrow function bodies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2702&quot;&gt;#2702&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: object-shorthand rule should not warn for NFEs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2748&quot;&gt;#2748&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: one-var ‘never’ option for mixed initialization (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2786&quot;&gt;#2786&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Fix: space-after-keywords should ignore extra parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2847&quot;&gt;#2847&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: space-unary-ops flags expressions starting w/ keyword (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2764&quot;&gt;#2764&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: valid-jsdoc to work for object getters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2407&quot;&gt;#2407&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;constructor-super&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2720&quot;&gt;#2720&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;no-this-before-super&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2721&quot;&gt;#2721&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: add no-unexpected-multiline rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/746&quot;&gt;#746&lt;/a&gt;) (Glen Mailer)&lt;/li&gt;
&lt;li&gt;New: array-bracket-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2226&quot;&gt;#2226&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add &lt;code&gt;except-parens&lt;/code&gt; option to &lt;code&gt;no-return-assign&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2809&quot;&gt;#2809&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add an option as an object to &lt;code&gt;generator-star-spacing&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2787&quot;&gt;#2787&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Update: Add block options to &lt;code&gt;lines-around-comment&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2667&quot;&gt;#2667&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Ignore JsDoc comments by default for &lt;code&gt;spaced-comment&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2766&quot;&gt;#2766&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: refactor handle-callback-err to improve performance (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2841&quot;&gt;#2841&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Clarify --rule description (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2773&quot;&gt;#2773&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Fix a minor typo in a prefer-const example (jviide)&lt;/li&gt;
&lt;li&gt;Docs: small fix in quote-props examples (Jose Roberto Vidal)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Update markdownlint dependency (David Anson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: eslint-tester to 0.8.1 (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.23.0 released</title>
    <link href="https://eslint.org/blog/2015/06/eslint-0.23.0-released/"/>
    <updated>2015-06-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/06/eslint-0.23.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h2 id=&quot;configuration-validation&quot; tabindex=&quot;-1&quot;&gt;Configuration Validation&lt;/h2&gt;
&lt;p&gt;The biggest feature of this release is addition of rules configuration validation. Now if you accidentally included a non-existing option in a rule configuration
you will be notified about it when you run ESLint. This also works for inline configuration inside JavaScript files and for configuration passed on command line.&lt;/p&gt;
&lt;p&gt;Note that prior to this release, invalid rule options meant the rule would use its default options. This would happen without any warning, so improperly configured rules weren’t working as intended in previous releases. If you start getting warned about invalid rule configuration, be sure to consult the rule documentation to determine how to fix it.&lt;/p&gt;
&lt;h2 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h2&gt;
&lt;p&gt;Three new rules were added in this release&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;computed-property-spacing&lt;/code&gt; - require or disallow padding inside computed properties (off by default)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prefer-const&lt;/code&gt; - suggest using of &lt;code&gt;const&lt;/code&gt; declaration for variables that are never modified after declared (off by default)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spaced-comment&lt;/code&gt; - require or disallow a space immediately following the &lt;code&gt;//&lt;/code&gt; or &lt;code&gt;/*&lt;/code&gt; in a comment (off by default)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Automatically validate rule options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2595&quot;&gt;#2595&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: “extends” within package.json (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2754&quot;&gt;#2754&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;prefer-const&lt;/code&gt; treats &lt;code&gt;for-in&lt;/code&gt;/&lt;code&gt;for-of&lt;/code&gt; with the same way (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2739&quot;&gt;#2739&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: don’t try to strip “line:” prefix from parser errors with no such prefix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2698&quot;&gt;#2698&lt;/a&gt;) (Tim Cuthbertson)&lt;/li&gt;
&lt;li&gt;Fix: never ignore config comment options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2725&quot;&gt;#2725&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-trailing-spaces now handles skipBlankLines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2575&quot;&gt;#2575&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Fix: remove hard-coded list of unary keywords in space-unary-ops rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2696&quot;&gt;#2696&lt;/a&gt;) (Tim Cuthbertson)&lt;/li&gt;
&lt;li&gt;Fix: Misconfigured default option for lines-around-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2677&quot;&gt;#2677&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-shadow&lt;/code&gt; allows shadowing in the TDZ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2568&quot;&gt;#2568&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Check unused vars in exported functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2678&quot;&gt;#2678&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Allowing u flag in regex to properly lint no-empty-character-class (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2679&quot;&gt;#2679&lt;/a&gt;) (Dominic Barnes)&lt;/li&gt;
&lt;li&gt;Fix: trailing commas in object-curly-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2647&quot;&gt;#2647&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: &lt;code&gt;computed-property-spacing&lt;/code&gt; (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2226&quot;&gt;#2226&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: Allow extends to be an array (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2699&quot;&gt;#2699&lt;/a&gt;) (Justin Morris)&lt;/li&gt;
&lt;li&gt;New: globals@7.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2682&quot;&gt;#2682&lt;/a&gt;) (silverwind)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;prefer-const&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2333&quot;&gt;#2333&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;New: &lt;code&gt;spaced-comment&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1088&quot;&gt;#1088&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: run processors when calling executeOnText (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2331&quot;&gt;#2331&lt;/a&gt;) (Mordy Tikotzky)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add clarification to spaced-comment (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2588&quot;&gt;#2588&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Update: Add markers to spaced-comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2588&quot;&gt;#2588&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Update: no-lone-blocks does not report block-level scopes (fixes  &lt;a href=&quot;https://github.com/eslint/eslint/issues/2119&quot;&gt;#2119&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Update: yoda onlyEquality option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2638&quot;&gt;#2638&lt;/a&gt;) (Denis Sokolov)&lt;/li&gt;
&lt;li&gt;Update: move executeOnText() tests to the correct describe block (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2648&quot;&gt;#2648&lt;/a&gt;) (Mordy Tikotzky)&lt;/li&gt;
&lt;li&gt;Update: add tests to assert that the preprocessor is running (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2651&quot;&gt;#2651&lt;/a&gt;) (Mordy Tikotzky)&lt;/li&gt;
&lt;li&gt;Upgrade: globals@8.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2759&quot;&gt;#2759&lt;/a&gt;) (silverwind)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: eol-last docs fix (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2755&quot;&gt;#2755&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Docs: btmills is a reviewer (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add links to team members profile (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Docs: add team and ES7 info to readme (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Mark global-strict on by default (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2629&quot;&gt;#2629&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Docs: deprecate no-wrap-func (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2644&quot;&gt;#2644&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Docs: Fixing grammar: then -&amp;gt; than (E)&lt;/li&gt;
&lt;li&gt;Docs: be consistent about deprecation status (Matthew Dapena-Tretter)&lt;/li&gt;
&lt;li&gt;Docs: Fix mistakes in object-curly-spacing docs (Matthew Dapena-Tretter)&lt;/li&gt;
&lt;li&gt;Docs: update comment to align with source code it’s referencing (Michael Ficarra)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Revert lock io.js to v2.1.0 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2745&quot;&gt;#2745&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Build: Pin Sinon version (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2742&quot;&gt;#2742&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Build: Stringify payload of release notes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2640&quot;&gt;#2640&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Build: Lock io.js to v2.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2653&quot;&gt;#2653&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.22.1 released</title>
    <link href="https://eslint.org/blog/2015/05/eslint-0.22.1-released/"/>
    <updated>2015-05-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/05/eslint-0.22.1-released/</id>
    <content type="html">&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build-Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Remove release notes auto-publish (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2640&quot;&gt;#2640&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.22.0 released</title>
    <link href="https://eslint.org/blog/2015/05/eslint-0.22.0-released/"/>
    <updated>2015-05-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/05/eslint-0.22.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h2 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h2&gt;
&lt;p&gt;We added 3 new rules to ESLint this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;lines-around-comment - Enforces empty lines around comments (off by default)&lt;/li&gt;
&lt;li&gt;accessor-pairs - Enforces getter/setter pairs in objects (off by default)&lt;/li&gt;
&lt;li&gt;object-curly-spacing - Disallow or enforce spaces inside of curly braces in objects.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We also renamed existing rule &lt;code&gt;no-empty-class&lt;/code&gt; to &lt;code&gt;no-empty-character-class&lt;/code&gt; to prevent confusion with ES6 classes&lt;/p&gt;
&lt;h2 id=&quot;preparation-for-configuration-validation&quot; tabindex=&quot;-1&quot;&gt;Preparation for configuration validation&lt;/h2&gt;
&lt;p&gt;We added rule schemas as well as schema validation, in preparation of enabling validation of &lt;code&gt;.eslintrc&lt;/code&gt; configuration files.&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: “consistent-this” incorrectly flagging destructuring of &lt;code&gt;this&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2633&quot;&gt;#2633&lt;/a&gt;) (David Aurelio)&lt;/li&gt;
&lt;li&gt;Fix: no-multiple-empty-lines and template strings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2605&quot;&gt;#2605&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: Shared config being clobbered by other config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2592&quot;&gt;#2592&lt;/a&gt;) (Dominic Barnes)&lt;/li&gt;
&lt;li&gt;Fix: Improve around function/class names of &lt;code&gt;no-shadow&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2556&quot;&gt;#2556&lt;/a&gt;, &lt;a href=&quot;https://github.com/eslint/eslint/issues/2552&quot;&gt;#2552&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Improve code coverage (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2590&quot;&gt;#2590&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Fix: Allow scoped configs to have sub-configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2594&quot;&gt;#2594&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Fix: counting of variables statements in one-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2570&quot;&gt;#2570&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Object shorthand rule incorrectly flagging getters/setters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2563&quot;&gt;#2563&lt;/a&gt;) (Brad Dougherty)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: object-curly-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2225&quot;&gt;#2225&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: lines-around-comment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1344&quot;&gt;#1344&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: accessor-pairs rule to object initializations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1638&quot;&gt;#1638&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: Add rule schemas (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2179&quot;&gt;#2179&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;New: Add config validator (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2179&quot;&gt;#2179&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;New: Add worker environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2442&quot;&gt;#2442&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;New no-empty-character class (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2508&quot;&gt;#2508&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: Adds --ignore-pattern option. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1742&quot;&gt;#1742&lt;/a&gt;) (Patrick McElhaney)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: escope 3.1.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2310&quot;&gt;#2310&lt;/a&gt;, &lt;a href=&quot;https://github.com/eslint/eslint/issues/2405&quot;&gt;#2405&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Upgrade: eslint-tester to 0.7.0 (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: allow shadowed references in no-alert (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1105&quot;&gt;#1105&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Update: adds “functions” option to no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2477&quot;&gt;#2477&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: minor fix for one-var rule (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Docs: Fix json formatting for lines-around-comments rule (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in shareable-configs example (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2571&quot;&gt;#2571&lt;/a&gt;) (Ted Piotrowski)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add auto-update of release tag on github (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2566&quot;&gt;#2566&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Build: Unblock build by increasing code coverage (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Build: Add sudo:false for Travis (fixes [&lt;a href=&quot;https://github.com/eslint/eslint/issues/2582&quot;&gt;#2582&lt;/a&gt;](&lt;a href=&quot;https://github.com/eslint/eslint/issues/2582&quot;&gt;https://github.com/eslint/eslint/issues/2582&lt;/a&gt;)) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Build: Relax markdownlint rules by disabling style-only items (David Anson)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.21.2 released</title>
    <link href="https://eslint.org/blog/2015/05/eslint-0.21.2-released/"/>
    <updated>2015-05-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/05/eslint-0.21.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: one-var exception for ForStatement.init (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2505&quot;&gt;#2505&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Don’t throw spurious shadow errors for classes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2545&quot;&gt;#2545&lt;/a&gt;) (Jimmy Jia)&lt;/li&gt;
&lt;li&gt;Fix: valid-jsdoc rule to support exported functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2522&quot;&gt;#2522&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Allow scoped packages in configuration extends (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2544&quot;&gt;#2544&lt;/a&gt;) (Eric Isakson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add chatroom to FAQ (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Move Gitter badge (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.21.1 released</title>
    <link href="https://eslint.org/blog/2015/05/eslint-0.21.1-released/"/>
    <updated>2015-05-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/05/eslint-0.21.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: --init indent setting (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2493&quot;&gt;#2493&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Allow comment before comma for comma-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2408&quot;&gt;#2408&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: dot-location should use correct dot token (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2504&quot;&gt;#2504&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Enable full support for eslint-env comments (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2134&quot;&gt;#2134&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Fix: forced no-shadow to check all scopes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2294&quot;&gt;#2294&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: loc obj in report fn expects column (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2481&quot;&gt;#2481&lt;/a&gt;) (Varun Verma)&lt;/li&gt;
&lt;li&gt;Fix: Not to override the required extended config object directly (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2487&quot;&gt;#2487&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: rule no-duplicate-case problem with CallExpressions. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2499&quot;&gt;#2499&lt;/a&gt;) (Matthias Osswald)&lt;/li&gt;
&lt;li&gt;Fix: Stop linebreak-style from crashing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2490&quot;&gt;#2490&lt;/a&gt;) (James Whitney)&lt;/li&gt;
&lt;li&gt;Revert “Fix: sanitise Jekyll interpolation during site generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2297&quot;&gt;#2297&lt;/a&gt;)” (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Added Gitter badge (The Gitter Badger)&lt;/li&gt;
&lt;li&gt;Docs: added recursive function example to no-unused-vars (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo (then -&amp;gt; than) (Vladimir Agafonkin)&lt;/li&gt;
&lt;li&gt;Docs: Fixing trailing spaces (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2478&quot;&gt;#2478&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Docs: Mention bundling multiple shareable configs (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update README FAQs (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build-Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Make sure that all md files end with empty line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2520&quot;&gt;#2520&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Build: Speed up site generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2475&quot;&gt;#2475&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Build: Update markdownlint dependency (David Anson)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.21.0 released</title>
    <link href="https://eslint.org/blog/2015/05/eslint-0.21.0-released/"/>
    <updated>2015-05-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/05/eslint-0.21.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h2 id=&quot;config-initialization&quot; tabindex=&quot;-1&quot;&gt;Config Initialization&lt;/h2&gt;
&lt;p&gt;Setting up a configuration file for the first time can be difficult, and we’re trying to make it easier. That’s why we’ve added the &lt;code&gt;--init&lt;/code&gt; command line flag. Using this flag, you’ll be walked through a series of questions to setup the basic information in your config file. For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ eslint --init
? What style of indentation do you use? Spaces
? What quotes do you use for strings? Double
? What line endings do you use? Unix
? Do you require semicolons? Yes
? Are you using ECMAScript 6 features? Yes
? Where will your code run? Browser
? Do you use JSX? No
? What format do you want your config file to be in? YAML
Successfully created .eslintrc file in c:&#92;Users&#92;Nicholas&#92;projects&#92;personal&#92;tmp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We hope this new feature will help get people started with ESLint faster.&lt;/p&gt;
&lt;h2 id=&quot;config-inheritance&quot; tabindex=&quot;-1&quot;&gt;Config Inheritance&lt;/h2&gt;
&lt;p&gt;Another feature we’ve added is the ability to inherit configuration settings. Now, you can use &lt;code&gt;extends&lt;/code&gt; to specify another file from which you want to inherit settings. For example:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token property&quot;&gt;&quot;extends&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;../../config/myconfig.json&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring#extending-configuration-files&quot;&gt;documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;shareable-configs&quot; tabindex=&quot;-1&quot;&gt;Shareable Configs&lt;/h2&gt;
&lt;p&gt;Rounding out our configuration changes is the ability to package up and share your configuration information with others. Shareable configs are simply npm packages that export an object containing your configuration preferences. You can then use &lt;code&gt;extends&lt;/code&gt; to bring those settings into your project. See the &lt;a href=&quot;https://eslint.org/docs/developer-guide/shareable-configs&quot;&gt;documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h3 id=&quot;1.0.0-update&quot; tabindex=&quot;-1&quot;&gt;1.0.0 Update&lt;/h3&gt;
&lt;p&gt;Some of our plans for 1.0.0 have shifted due to some last minute feedback. The new list of changes for 1.0.0 is &lt;a href=&quot;https://github.com/eslint/eslint/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.0.0&quot;&gt;now available&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The biggest notable change from the previous list is &lt;a href=&quot;https://github.com/eslint/eslint/issues/2100&quot;&gt;#2100&lt;/a&gt;, which will make &lt;code&gt;--reset&lt;/code&gt; the default behavior of ESLint. We’ve had a lot of feedback that the default rules are a significant pain point, so in 1.0.0 we won’t have any rules enabled by default. See the issue for more discussion.&lt;/p&gt;
&lt;p&gt;Reminder: we are preparing a list of breaking changes that will be coming in v1.0.0 and are tracking them on &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;. Stay tuned to that issue so you know what to expect.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Do not check unset declaration types (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2448&quot;&gt;#2448&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix object-shorthand arrow functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2414&quot;&gt;#2414&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: &lt;code&gt;no-loop-func&lt;/code&gt; rule allows functions at init part (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2427&quot;&gt;#2427&lt;/a&gt;) (Toru Nagashima)&lt;/li&gt;
&lt;li&gt;Fix: Adding exception for last line (Refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2423&quot;&gt;#2423&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Fix: brace-style to not warn about curly mix ifStatements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1739&quot;&gt;#1739&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Check extra scope in no-use-before-define (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2372&quot;&gt;#2372&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: crash on 0 max (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2423&quot;&gt;#2423&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Fix: Don’t warn for member expression functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2402&quot;&gt;#2402&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Edge cases for no-wrap-func (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2466&quot;&gt;#2466&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Ensure baseConfig isn’t changed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2380&quot;&gt;#2380&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: generator-star-spacing with class methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2351&quot;&gt;#2351&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Improves detection of self-referential functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2363&quot;&gt;#2363&lt;/a&gt;) (Jose Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: Include string literal keys in object-shorthand (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2374&quot;&gt;#2374&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: no-irregular-whitespace should work with irregular line breaks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2316&quot;&gt;#2316&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: no-redeclare switch scoping (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2337&quot;&gt;#2337&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: npm run profile script should use espree (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2150&quot;&gt;#2150&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: sanitise Jekyll interpolation during site generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2297&quot;&gt;#2297&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: space-in-brackets Cannot read property ‘range’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2392&quot;&gt;#2392&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: space-in-brackets import declaration  (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2378&quot;&gt;#2378&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add addPlugin method to CLI-engine (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1971&quot;&gt;#1971&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;New: Add dot-location rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1884&quot;&gt;#1884&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;New: Add init command (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2302&quot;&gt;#2302&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;New: Add support for extending configurations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1637&quot;&gt;#1637&lt;/a&gt;) (Espen Hovlandsdal)&lt;/li&gt;
&lt;li&gt;New: Adds skipBlankLines option to the no-trailing-spaces rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2303&quot;&gt;#2303&lt;/a&gt;) (Andrew Vaughan)&lt;/li&gt;
&lt;li&gt;New: Check --stdin-filename by ignore settings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2432&quot;&gt;#2432&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;New: linebreak-style rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1255&quot;&gt;#1255&lt;/a&gt;) (Erik Müller)&lt;/li&gt;
&lt;li&gt;New: no-unneeded-ternary rule to disallow boolean literals in conditional expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2391&quot;&gt;#2391&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: Shareable configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2415&quot;&gt;#2415&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add “none” option to operator-linebreak rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2295&quot;&gt;#2295&lt;/a&gt;) (Casey Visco)&lt;/li&gt;
&lt;li&gt;Update: Add uninitialized and initialized options (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2206&quot;&gt;#2206&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Update: Exception option for &lt;code&gt;no-extend-native&lt;/code&gt; and &lt;code&gt;no-native-reassign&lt;/code&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2355&quot;&gt;#2355&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: key-spacing groups must be consecutive lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1728&quot;&gt;#1728&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add &lt;code&gt;restParams&lt;/code&gt; to &lt;code&gt;ecmaFeatures&lt;/code&gt; options list (refs: &lt;a href=&quot;https://github.com/eslint/eslint/issues/2346&quot;&gt;#2346&lt;/a&gt;) (Bogdan Savluk)&lt;/li&gt;
&lt;li&gt;Docs: grammar fix in no-sync (Tony Lukasavage)&lt;/li&gt;
&lt;li&gt;Docs: Sort the rules (Lukas Böcker)&lt;/li&gt;
&lt;li&gt;Docs: Specify language for all code fences, enable corresponding markdownlint rule. (David Anson)&lt;/li&gt;
&lt;li&gt;Docs: Update &lt;a href=&quot;http://configuring.md/&quot;&gt;configuring.md&lt;/a&gt; to fix incorrect link. (Ans)&lt;/li&gt;
&lt;li&gt;Docs: Update ecmaFeatures description (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.20.0 released</title>
    <link href="https://eslint.org/blog/2015/04/eslint-0.20.0-released/"/>
    <updated>2015-04-24T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/04/eslint-0.20.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;updating-rules-for-ecmascript-6&quot; tabindex=&quot;-1&quot;&gt;Updating Rules for ECMAScript 6&lt;/h3&gt;
&lt;p&gt;We’re still getting a fair number of bug reports related to specific ECMAScript 6 features. The good news is that the bug report rate has slowed dramatically, so we’re getting to a much more stable place in terms of ES6 support. Keep those bug reports coming!&lt;/p&gt;
&lt;h3 id=&quot;scoped-plugin-support&quot; tabindex=&quot;-1&quot;&gt;Scoped Plugin Support&lt;/h3&gt;
&lt;p&gt;This release adds support for scoped npm modules (beginning with &lt;code&gt;@eslint/&lt;/code&gt;, for example). This is a new feature that npm recently released, and we’re happy to follow up by allowing you to use scoped packages as ESLint plugins. See &lt;a href=&quot;https://github.com/eslint/eslint/issues/2360&quot;&gt;#2360&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h3 id=&quot;1.0.0-update&quot; tabindex=&quot;-1&quot;&gt;1.0.0 Update&lt;/h3&gt;
&lt;p&gt;With the ESTree changes in, we just have a few outstanding issues before releasing 1.0.0. Those issues are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/2302&quot;&gt;#2302&lt;/a&gt; - create a way to bootstrap &lt;code&gt;.eslintrc&lt;/code&gt; files for new users&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/2284&quot;&gt;#2284&lt;/a&gt; - should we switch to using 1-based column numbers instead of 0-based column numbers?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/2226&quot;&gt;#2226&lt;/a&gt; - split space-in-brackets rule; implement array-literal-spacing and computed-property-spacing rules.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/2225&quot;&gt;#2225&lt;/a&gt; - split space-in-brackets rule; implement curly-braces-spacing rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reminder: we are preparing a list of breaking changes that will be coming in v1.0.0 and are tracking them on [[&lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;](&lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;https://github.com/eslint/eslint/issues/1898&lt;/a&gt;)](&lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;https://github.com/eslint/eslint/issues/1898&lt;/a&gt;). Stay tuned to that issue so you know what to expect.&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Add &lt;code&gt;v8&lt;/code&gt; module to no-mixed-requires rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2320&quot;&gt;#2320&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: allow plugins to be namespaced (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2360&quot;&gt;#2360&lt;/a&gt;) (Seth Pollack)&lt;/li&gt;
&lt;li&gt;Fix: Column position in space-infix-ops rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2354&quot;&gt;#2354&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: key-spacing with single properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2311&quot;&gt;#2311&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Load .eslintrc in $HOME only if no other .eslintrc is found (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2279&quot;&gt;#2279&lt;/a&gt;) (Jasper Woudenberg)&lt;/li&gt;
&lt;li&gt;Fix: newline-after-var declare and export (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2325&quot;&gt;#2325&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: newline-after-var to ignore declare in for specifiers (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2317&quot;&gt;#2317&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: space-in-brackets to work with modules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2216&quot;&gt;#2216&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: support arrow functions in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2367&quot;&gt;#2367&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: add --stdin-filename option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1950&quot;&gt;#1950&lt;/a&gt;) (Mordy Tikotzky)&lt;/li&gt;
&lt;li&gt;New: object-shorthand rule (refs: &lt;a href=&quot;https://github.com/eslint/eslint/issues/1617&quot;&gt;#1617&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: backticks support for quotes rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2153&quot;&gt;#2153&lt;/a&gt;) (borislavjivkov)&lt;/li&gt;
&lt;li&gt;Update: one-var: enable let &amp;amp; const (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2301&quot;&gt;#2301&lt;/a&gt;) (Joey Baker)&lt;/li&gt;
&lt;li&gt;Update: Use &lt;code&gt;Object.assign()&lt;/code&gt; polyfill for all object merging (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2348&quot;&gt;#2348&lt;/a&gt;) (Sindre Sorhus)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: &lt;code&gt;no-invalid-regexp&lt;/code&gt;: add &lt;code&gt;ecmaFeatures&lt;/code&gt; flags for &lt;code&gt;u&lt;/code&gt;/&lt;code&gt;y&lt;/code&gt; (Jordan Harband)&lt;/li&gt;
&lt;li&gt;Docs: Add meteor to avaiable environments list (bartmichu)&lt;/li&gt;
&lt;li&gt;Docs: Some typos and grammar. (AlexKVal)&lt;/li&gt;
&lt;li&gt;Docs: Update markdownlint dependency, resolve/suppress new issues. (David Anson)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.19.0 released</title>
    <link href="https://eslint.org/blog/2015/04/eslint-0.19.0-released/"/>
    <updated>2015-04-11T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/04/eslint-0.19.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;more-ecmascript-6-fixes&quot; tabindex=&quot;-1&quot;&gt;More ECMAScript 6 fixes&lt;/h3&gt;
&lt;p&gt;This release addresses the root cause of several issues related to ECMAScript 6 features. We previously were having a lot of trouble with scoping issues related to modules, destructuring, and destructured parameters. In this release, we fixed a whole host of such errors so our ES6 support should be really solid at this point.&lt;/p&gt;
&lt;h3 id=&quot;estree-support-for-default-and-rest-parameters&quot; tabindex=&quot;-1&quot;&gt;ESTree Support for Default and Rest Parameters&lt;/h3&gt;
&lt;p&gt;The big parser upgrade to support the &lt;a href=&quot;https://github.com/estree/estree/blob/master/es6.md&quot;&gt;ESTree&lt;/a&gt; format for default and rest parameters is now complete. You can feel free to create custom rules using these features and feel confident knowing that the AST format will not be changing.&lt;/p&gt;
&lt;h3 id=&quot;1.0.0-update&quot; tabindex=&quot;-1&quot;&gt;1.0.0 Update&lt;/h3&gt;
&lt;p&gt;With the ESTree changes in, we just have a few outstanding issues before releasing 1.0.0. Those issues are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/2284&quot;&gt;#2284&lt;/a&gt; - should we switch to using 1-based column numbers instead of 0-based column numbers?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/2226&quot;&gt;#2226&lt;/a&gt; - split space-in-brackets rule; implement array-literal-spacing and computed-property-spacing rules.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/2225&quot;&gt;#2225&lt;/a&gt; - split space-in-brackets rule; implement curly-braces-spacing rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reminder: we are preparing a list of breaking changes that will be coming in v1.0.0 and are tracking them on [&lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;](&lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;https://github.com/eslint/eslint/issues/1898&lt;/a&gt;). Stay tuned to that issue so you know what to expect.&lt;/p&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: &lt;code&gt;no-empty&lt;/code&gt; rule should allow any comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2188&quot;&gt;#2188&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Allow inline comments in newline-after-var rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2229&quot;&gt;#2229&lt;/a&gt;) (Casey Visco)&lt;/li&gt;
&lt;li&gt;Fix: block-scoped-var to work with classes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2280&quot;&gt;#2280&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: camelcase rule with {properties: never} shouldn’t check assignment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2189&quot;&gt;#2189&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: Consider tabs for space-in-parens rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2191&quot;&gt;#2191&lt;/a&gt;) (Josh Quintana)&lt;/li&gt;
&lt;li&gt;Fix: Don’t check concise methods in quote-props (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2251&quot;&gt;#2251&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: duplicate semi and no-extra-semi errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2207&quot;&gt;#2207&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Function id missing in parent scope when using ecmaFeature &lt;code&gt;modules&lt;/code&gt; for rule block-scoped-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2242&quot;&gt;#2242&lt;/a&gt;) (Michael Ferris)&lt;/li&gt;
&lt;li&gt;Fix: Handle comment lines in newline-after-var (fixed &lt;a href=&quot;https://github.com/eslint/eslint/issues/2237&quot;&gt;#2237&lt;/a&gt;) (Casey Visco)&lt;/li&gt;
&lt;li&gt;Fix: Ignore single lines for vertical alignment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2018&quot;&gt;#2018&lt;/a&gt;) (Ian VanSchooten)&lt;/li&gt;
&lt;li&gt;Fix: no-undef and no-underscore-dangle to use double quotes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2258&quot;&gt;#2258&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: padded-blocks with ASI (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2273&quot;&gt;#2273&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Report better location for padded-blocks error (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2224&quot;&gt;#2224&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Require semicolon after import/export statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2174&quot;&gt;#2174&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: semi error on export declaration (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2194&quot;&gt;#2194&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Allow modifying base config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2143&quot;&gt;#2143&lt;/a&gt;) (Meo)&lt;/li&gt;
&lt;li&gt;New: no-continue rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1945&quot;&gt;#1945&lt;/a&gt;) (borislavjivkov)&lt;/li&gt;
&lt;li&gt;New: operator-linebreak rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1405&quot;&gt;#1405&lt;/a&gt;) (Benoît Zugmeyer)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add test for no-undef (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2214&quot;&gt;#2214&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add linting of Markdown files to “npm test” script (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2182&quot;&gt;#2182&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;Build: Fix gensite task to work even if files are missing (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Build: Fixing site generation (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Build: Remove jshint files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2222&quot;&gt;#2222&lt;/a&gt;) (Jeff Tan)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Espree to 1.12.3 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2195&quot;&gt;#2195&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Upgrade: Espree 2.0.0 and escope 3.0.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2234&quot;&gt;#2234&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2201&quot;&gt;#2201&lt;/a&gt;, fixes (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: Espree to 2.0.1 (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Fix spell in camelcase doc (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2190&quot;&gt;#2190&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in &lt;a href=&quot;http://command-line-interface.md/&quot;&gt;command-line-interface.md&lt;/a&gt; (Nate Eagleson)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in &lt;a href=&quot;http://working-with-rules.md/&quot;&gt;working-with-rules.md&lt;/a&gt; (Nate Eagleson)&lt;/li&gt;
&lt;li&gt;Docs: Fixing broken links in documentation (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Docs: Improve grammar and style in &lt;a href=&quot;http://comma-dangle.md/&quot;&gt;comma-dangle.md&lt;/a&gt; (Nate Eagleson)&lt;/li&gt;
&lt;li&gt;Docs: Improve grammar and style in &lt;a href=&quot;http://padded-blocks.md/&quot;&gt;padded-blocks.md&lt;/a&gt; (Nate Eagleson)&lt;/li&gt;
&lt;li&gt;Docs: no-empty fix comment change (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2188&quot;&gt;#2188&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Docs: Remove hard tabs from *.md, enable corresponding markdownlint rule. (David Anson)&lt;/li&gt;
&lt;li&gt;Docs: Remove trailing spaces, enable corresponding markdownlint rule. (David Anson)&lt;/li&gt;
&lt;li&gt;Docs: Standardize on ‘*’ for unordered lists, enable corresponding markdownlint rule. (David Anson)&lt;/li&gt;
&lt;li&gt;Docs: Update --no-ignore warning (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Update one-var documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2210&quot;&gt;#2210&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update processors description (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update URL in &lt;a href=&quot;http://no-wrap-func.md/&quot;&gt;no-wrap-func.md&lt;/a&gt; to resolve 404 (Nate Eagleson)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.18.0 released</title>
    <link href="https://eslint.org/blog/2015/03/eslint-0.18.0-released/"/>
    <updated>2015-03-28T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/03/eslint-0.18.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;more-changes-to-jsx%2Freact-handling&quot; tabindex=&quot;-1&quot;&gt;More Changes to JSX/React handling&lt;/h3&gt;
&lt;p&gt;Following up on the removal of React semantics in 0.17.0, we discovered that there was some lingering pieces of code that were still looking at React semantics that had been missed. So, we removed those extra bits of code so that ESLint is now completely free of React semantics. We will parse JSX fine, but we are not applying any semantics to the syntax.&lt;/p&gt;
&lt;p&gt;If you’re using React and want proper handling of identifiers, please use the excellent &lt;a href=&quot;https://github.com/yannickcr/eslint-plugin-react&quot;&gt;eslint-plugin-react&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;even-more-ecmascript-6-fixes&quot; tabindex=&quot;-1&quot;&gt;Even More ECMAScript 6 fixes&lt;/h3&gt;
&lt;p&gt;The bug reports for ECMAScript 6 features are continuing to roll in, and we’re working quickly to address those bugs as they appear. The standardization of ECMAScript 6 and its ESTree representation means we can really dig in and finalize functionality now.&lt;/p&gt;
&lt;h3 id=&quot;website-reorganization&quot; tabindex=&quot;-1&quot;&gt;Website Reorganization&lt;/h3&gt;
&lt;p&gt;A big part of this release has been the reorganization of &lt;a href=&quot;https://eslint.org/&quot;&gt;eslint.org&lt;/a&gt;. All content is still available, and is now separated into a User Guide and a Developer Guide. We’ve also moved some of the content directly into the &lt;a href=&quot;https://github.com/eslint/eslint.github.io&quot;&gt;website repo&lt;/a&gt; so that it’s easier to make changes. The majority of documentation still lives in the main ESLint repo, we’ve just moved out static information that isn’t release-bound.&lt;/p&gt;
&lt;h3 id=&quot;1.0.0-update&quot; tabindex=&quot;-1&quot;&gt;1.0.0 Update&lt;/h3&gt;
&lt;p&gt;To repeat the same announcement from the 0.17.0 release, the biggest remaining task is to use the finalized AST node structure for rest and default parameters as well as switching to use the new &lt;code&gt;handler&lt;/code&gt; property of &lt;code&gt;TryStatement&lt;/code&gt;. Espree needs to be updated with the new nodes before we can start that integration process.&lt;/p&gt;
&lt;p&gt;We are preparing a list of breaking changes that will be coming in v1.0.0 and are tracking them on &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;. Stay tuned to that issue so you know what to expect.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Remove JSX support from no-undef (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2093&quot;&gt;#2093&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: rule no-empty also checking for empty catch blocks. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1841&quot;&gt;#1841&lt;/a&gt;) (Dieter Oberkofler)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Add “Error” to the “new-cap” rule exceptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2098&quot;&gt;#2098&lt;/a&gt;) (Mickaël Tricot)&lt;/li&gt;
&lt;li&gt;Fix: arrow functions need wrapping (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2113&quot;&gt;#2113&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: block-scoped-var to handle imports (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2087&quot;&gt;#2087&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Don’t crash on empty array pattern item (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2111&quot;&gt;#2111&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Don’t error on destructured params (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2051&quot;&gt;#2051&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Don’t warn about destructured catch params (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2125&quot;&gt;#2125&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Ensure piped in code will trigger correct errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2154&quot;&gt;#2154&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: func-names with ES6 classes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2103&quot;&gt;#2103&lt;/a&gt;) (Marsup)&lt;/li&gt;
&lt;li&gt;Fix: indent crash on caseless switch (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2144&quot;&gt;#2144&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: key-spacing crash on computed properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2120&quot;&gt;#2120&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Mark variables as used in module scope (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2137&quot;&gt;#2137&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: markVariableAsUsed() should work in Node.js env (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2089&quot;&gt;#2089&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-constant-condition should not flag += (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2155&quot;&gt;#2155&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-dupe-args to work with destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2148&quot;&gt;#2148&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Unused recursive functions should be flagged (issue2095) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: vars-on-top conflict with ES6 import (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2099&quot;&gt;#2099&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add “always” and “never” options to “one-var” rule. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1619&quot;&gt;#1619&lt;/a&gt;) (Danny Fritz)&lt;/li&gt;
&lt;li&gt;New: Added option int32Hint for space-infix-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1295&quot;&gt;#1295&lt;/a&gt;) (Kirill Efimov)&lt;/li&gt;
&lt;li&gt;New: newline-after-var rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2057&quot;&gt;#2057&lt;/a&gt;) (Gopal Venkatesan)&lt;/li&gt;
&lt;li&gt;New: no-param-reassign rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1599&quot;&gt;#1599&lt;/a&gt;) (Nat Burns)&lt;/li&gt;
&lt;li&gt;New: space-before-function-paren rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2028&quot;&gt;#2028&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Omit setter param from no-unused-vars (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2133&quot;&gt;#2133&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: rule camelcase to allow snake_case in object literals. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1919&quot;&gt;#1919&lt;/a&gt;) (Dieter Oberkofler)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Adding back deprecated space-unary-word-ops documentation (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Docs: Cleaning dead links (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Docs: Fixed JSON syntax (Sajin)&lt;/li&gt;
&lt;li&gt;Docs: Fixing broken links (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Docs: Moving documentation out of the repository and modifying build scripts (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Docs: Update link to Documentation (Kate Lizogubova)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.17.1 released</title>
    <link href="https://eslint.org/blog/2015/03/eslint-0.17.1-released/"/>
    <updated>2015-03-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/03/eslint-0.17.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: block-scoped-var to work with classes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2048&quot;&gt;#2048&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: block-scoped-var to work with destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2059&quot;&gt;#2059&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Exempt &#92;0 from no-octal-escape (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1923&quot;&gt;#1923&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: Method name resolution in complexity rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2049&quot;&gt;#2049&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-func-assign should not fail on import declarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2060&quot;&gt;#2060&lt;/a&gt;) (Igor Zalutsky)&lt;/li&gt;
&lt;li&gt;Fix: no-redeclare should check Node.js scope (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2064&quot;&gt;#2064&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-unused-vars crash from escope workaround (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2042&quot;&gt;#2042&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: restrict dot-notation keywords to actual ES3 keywords (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2075&quot;&gt;#2075&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: rule no-duplicate-case problem with MemberExpressions. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2038&quot;&gt;#2038&lt;/a&gt;) (Dieter Oberkofler)&lt;/li&gt;
&lt;li&gt;Fix: space-before-function-parentheses generator methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2082&quot;&gt;#2082&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: yoda range exceptions with this (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2063&quot;&gt;#2063&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Fix documentation on configuring eslint with comments (Miguel Ping)&lt;/li&gt;
&lt;li&gt;Docs: Update no-new documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2044&quot;&gt;#2044&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.17.0 released</title>
    <link href="https://eslint.org/blog/2015/03/eslint-0.17.0-released/"/>
    <updated>2015-03-14T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/03/eslint-0.17.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;changes-to-jsx%2Freact-handling&quot; tabindex=&quot;-1&quot;&gt;Changes to JSX/React handling&lt;/h3&gt;
&lt;p&gt;In this release, we made the decision to stop supporting React semantics of JSX. We had previously been checking JSX for identifiers in our rules and realized we could only do that correctly by building-in knowledge of how React works. Such knowledge already hurt us when the semantics changed a bit, and we really didn’t want to find ourselves in that situation again.&lt;/p&gt;
&lt;p&gt;ESLint will continue to support JSX syntax but will no longer apply React semantics to that syntax. Since we know that many ESLint users want React semantics, we’ve ensured there’s a way for the excellent &lt;a href=&quot;https://github.com/yannickcr/eslint-plugin-react&quot;&gt;eslint-plugin-react&lt;/a&gt; to fill this gap. Specifically, we’ve added a new method that is available to rules that can indicate a variable has been used. Many of the React-based errors people were reporting related directly to interpretation of when variables had been used, and this change lets other plugin authors augment what ESLint thinks has been used.&lt;/p&gt;
&lt;h3 id=&quot;more-ecmascript-6-fixes&quot; tabindex=&quot;-1&quot;&gt;More ECMAScript 6 fixes&lt;/h3&gt;
&lt;p&gt;As a result of being the first tool to fully support ECMAScript 6, we’ve found a lot of bugs and issues both in ESLint and our dependencies. We’ve been working as quickly as possible to fix issues and work with other projects to fix their issues as well.&lt;/p&gt;
&lt;h3 id=&quot;deprioritizing-new-rules&quot; tabindex=&quot;-1&quot;&gt;Deprioritizing new rules&lt;/h3&gt;
&lt;p&gt;Because we are so focused on ECMAScript 6 support, we are deprioritizing adding new rules right now. You may still file issues for rules you’d like, but they likely won’t be addressed by the ESLint team until after 1.0.0 is released. We will still accept pull requests for new rules, we just won’t be spending much time on implementing new rules ourselves until after 1.0.0.&lt;/p&gt;
&lt;h3 id=&quot;1.0.0-update&quot; tabindex=&quot;-1&quot;&gt;1.0.0 Update&lt;/h3&gt;
&lt;p&gt;We had hoped this next release would be 1.0.0, but we aren’t quite there yet. The biggest remaining task is to use the finalized AST node structure for rest and default parameters as well as switching to use the new &lt;code&gt;handler&lt;/code&gt; property of &lt;code&gt;TryStatement&lt;/code&gt;. Espree needs to be updated with the new nodes before we can start that integration process.&lt;/p&gt;
&lt;p&gt;We are preparing a list of breaking changes that will be coming in v1.0.0 and are tracking them on &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;. Stay tuned to that issue so you know what to expect.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Stop checking JSX variable use, expose API instead (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1911&quot;&gt;#1911&lt;/a&gt;) (Glen Mailer)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Add comma-dangle allow-multiline (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1984&quot;&gt;#1984&lt;/a&gt;) (Keith Cirkel)&lt;/li&gt;
&lt;li&gt;Fix: Check spacing of class methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1989&quot;&gt;#1989&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: destructured arguments should work in block-scoped-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1996&quot;&gt;#1996&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Don’t explode on default export function (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1985&quot;&gt;#1985&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Ignore super in no-undef (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1968&quot;&gt;#1968&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Line breaking with just carriage return (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2005&quot;&gt;#2005&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: location of new-cap error messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2025&quot;&gt;#2025&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: module import specifiers should be defined (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1978&quot;&gt;#1978&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: generator-star-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1680&quot;&gt;#1680&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1949&quot;&gt;#1949&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;New: no-duplicate-case rule to disallow a duplicate case label (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/2015&quot;&gt;#2015&lt;/a&gt;) (Dieter Oberkofler)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add AST node exceptions to comma-style. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1932&quot;&gt;#1932&lt;/a&gt;) (Evan Simmons)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Espree to v0.12.0 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1968&quot;&gt;#1968&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Clarify issue requirement for doc pull requests (Ian)&lt;/li&gt;
&lt;li&gt;Docs: Add spread operator to available language options (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.16.2 released</title>
    <link href="https://eslint.org/blog/2015/03/eslint-0.16.2-released/"/>
    <updated>2015-03-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/03/eslint-0.16.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Don’t warn about parens around yield (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1981&quot;&gt;#1981&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Ensure globalReturn isn’t on when node:false (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1995&quot;&gt;#1995&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Global block-scope-var check should work (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1980&quot;&gt;#1980&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Downgrade: escope pegged to 2.0.6 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/2001&quot;&gt;#2001&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: escope to 2.0.7 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1978&quot;&gt;#1978&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: estraverse to latest for ESTree support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1986&quot;&gt;#1986&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Update descriptive text for --no-ignore option. (David Anson)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.16.1 released</title>
    <link href="https://eslint.org/blog/2015/03/eslint-0.16.1-released/"/>
    <updated>2015-03-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/03/eslint-0.16.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Ensure all export nodes are traversable (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1965&quot;&gt;#1965&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Ensure class names are marked as used (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1967&quot;&gt;#1967&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Node.js scoping in block-scoped-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1969&quot;&gt;#1969&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: remove typo that caused a crash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1963&quot;&gt;#1963&lt;/a&gt;) (Fabricio C Zuardi)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Enable ES6 scoping for more options (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Added missing “are” (Sean Wilkinson)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.16.0 released</title>
    <link href="https://eslint.org/blog/2015/03/eslint-0.16.0-released/"/>
    <updated>2015-03-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/03/eslint-0.16.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;complete-ecmascript-6-support&quot; tabindex=&quot;-1&quot;&gt;Complete ECMAScript 6 support&lt;/h3&gt;
&lt;p&gt;0.16.0 adds more language options for parsing JavaScript, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Classes&lt;/li&gt;
&lt;li&gt;Modules&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both of these options are off by default, and you can enable them in your configuration file. See &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring&quot;&gt;Configuring ESLint&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;Classes and modules follow the newly-standardized &lt;a href=&quot;https://github.com/estree/estree/&quot;&gt;estree&lt;/a&gt; AST node structure, and so these changes may not be completely compatible with older parsers that have not yet upgraded.&lt;/p&gt;
&lt;p&gt;We’ve included a new &lt;code&gt;es6&lt;/code&gt; environment that enables all ECMAScript 6 features &lt;em&gt;except&lt;/em&gt; modules. Since modules imply global strict mode, that puts the parser into a different mode. You’ll need to manually opt-in to using modules via &lt;code&gt;ecmaFeatures.modules&lt;/code&gt;. So if you are using ECMAScript 6 modules in your project, you’ll want to enable the &lt;code&gt;es6&lt;/code&gt; environment in addition to &lt;code&gt;ecmaFeatures.modules&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The AST structure for default parameters and rest parameters is still undergoing change and discussion. We recommend not creating custom rules using default or rest parameters until after ESLint 1.0.0.&lt;/p&gt;
&lt;h3 id=&quot;single-line-disable-comment&quot; tabindex=&quot;-1&quot;&gt;Single-line disable comment&lt;/h3&gt;
&lt;p&gt;Due to popular demand, we’ve added a new way to disable rules on a single line:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// disables just semi for this line&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;doSomething&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;token comment&quot;&gt;//eslint-disable-line semi&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// disables all rules for this line&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token function&quot;&gt;doSomething&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;token comment&quot;&gt;//eslint-disable-line&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Keep in mind that the comment must be at the end of the line you want to disable.&lt;/p&gt;
&lt;h3 id=&quot;1.0.0-update&quot; tabindex=&quot;-1&quot;&gt;1.0.0 Update&lt;/h3&gt;
&lt;p&gt;We’re getting even closer to 1.0.0. The biggest remaining task is to use the finalized AST node structure for rest and default parameters as well as switching to use the new &lt;code&gt;handler&lt;/code&gt; property of &lt;code&gt;TryStatement&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We are preparing a list of breaking changes that will be coming in v1.0.0 and are tracking them on &lt;a href=&quot;https://github.com/eslint/eslint/issues/1898&quot;&gt;#1898&lt;/a&gt;. Stay tuned to that issue so you know what to expect.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: change no-comma-dangle to comma-dangle (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1350&quot;&gt;#1350&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Breaking: Change no-space-before-semi to semi-spacing and add “after” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1671&quot;&gt;#1671&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Breaking: made eol-last less strict (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1460&quot;&gt;#1460&lt;/a&gt;) (Glen Mailer)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: allow block bindings in no-inner-declarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1893&quot;&gt;#1893&lt;/a&gt;) (Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: Better error when given null as rule config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1760&quot;&gt;#1760&lt;/a&gt;) (Glen Mailer)&lt;/li&gt;
&lt;li&gt;Fix: block-scoped-var to work with destructuring (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1863&quot;&gt;#1863&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: comma-spacing should ignore JSX text (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1916&quot;&gt;#1916&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Comment configuration of rule doesn’t work (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1792&quot;&gt;#1792&lt;/a&gt;) (Jary)&lt;/li&gt;
&lt;li&gt;Fix: getScope and no-use-before-define for arrow functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1895&quot;&gt;#1895&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Make no-inner-declarations look for arrow functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1892&quot;&gt;#1892&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Make no-unused-vars ignore exports (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1903&quot;&gt;#1903&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Pass correct sourceType to escope (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1959&quot;&gt;#1959&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Rest args should work in no-undef and block-scoped-var (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1543&quot;&gt;#1543&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Scoping for Node.js (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/892&quot;&gt;#892&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: space-before-function-parentheses and object methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1920&quot;&gt;#1920&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: strict rule should honor module code (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1956&quot;&gt;#1956&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Use unversioned sinon file in browser test (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1947&quot;&gt;#1947&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add es6 environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1864&quot;&gt;#1864&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1944&quot;&gt;#1944&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New: Adding support for “// eslint-disable-line rule” style comments (Billy Matthews)&lt;/li&gt;
&lt;li&gt;New: generator-star middle option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1808&quot;&gt;#1808&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: no-dupe-args rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1880&quot;&gt;#1880&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add support for custom preprocessors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1817&quot;&gt;#1817&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: no-empty to check TryStatement.handler (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1930&quot;&gt;#1930&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Remove preferGlobal from package.json (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1877&quot;&gt;#1877&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: space-before-function-parentheses to support generators (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1929&quot;&gt;#1929&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Espree to 1.10.0 for classes support (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: Espree to v1.11.0 (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add mention of compatible parsers (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: &lt;a href=&quot;http://no-plusplus.md/&quot;&gt;no-plusplus.md&lt;/a&gt; - auto semicolon insertion (Miroslav Obradović)&lt;/li&gt;
&lt;li&gt;Docs: Update docs for token-related methods (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1878&quot;&gt;#1878&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update ecmaFeatures list (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1942&quot;&gt;#1942&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Use union types in TokenStore JSDoc (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1878&quot;&gt;#1878&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.15.1 released</title>
    <link href="https://eslint.org/blog/2015/02/eslint-0.15.1-released/"/>
    <updated>2015-02-26T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/02/eslint-0.15.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Allow globalReturn in consistent-return (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1868&quot;&gt;#1868&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: check all semicolons in no-space-before-semi (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1885&quot;&gt;#1885&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Refactor comma-spacing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1587&quot;&gt;#1587&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1845&quot;&gt;#1845&lt;/a&gt;) (Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: semi rule should check throw statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1873&quot;&gt;#1873&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add CustomInk to the list of companies (Derek Lindahl)&lt;/li&gt;
&lt;li&gt;Docs: Added HolidayCheck AG as user (0xPIT)&lt;/li&gt;
&lt;li&gt;Docs: Alphabetize project &amp;amp; company usage list (Derek Lindahl)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo (Brenard Cubacub)&lt;/li&gt;
&lt;li&gt;Docs: fix typo (Henry Zhu)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Fix release task (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: &lt;code&gt;chalk&lt;/code&gt; to 1.0.0 (Sindre Sorhus)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.15.0 released</title>
    <link href="https://eslint.org/blog/2015/02/eslint-0.15.0-released/"/>
    <updated>2015-02-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/02/eslint-0.15.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;more-language-options&quot; tabindex=&quot;-1&quot;&gt;More Language Options&lt;/h3&gt;
&lt;p&gt;0.15.0 adds more language options for parsing JavaScript, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spread operator&lt;/li&gt;
&lt;li&gt;Rest parameters&lt;/li&gt;
&lt;li&gt;Destructuring&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these options are off by default, and you can enable them in your configuration file. See &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring&quot;&gt;Configuring ESLint&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The AST structure for default parameters and rest parameters is still undergoing change and discussion. We recommend not creating custom rules using default or rest parameters until after ESLint 1.0.0.&lt;/p&gt;
&lt;h3 id=&quot;new-rule%3A-space-before-function-parentheses&quot; tabindex=&quot;-1&quot;&gt;New Rule: space-before-function-parentheses&lt;/h3&gt;
&lt;p&gt;We had a significant gap in spacing after function names and before anonymous function parentheses. In order to cover this case, we removed &lt;code&gt;checkFunctionKeyword&lt;/code&gt; option from &lt;code&gt;space-after-keywords&lt;/code&gt; and deprecated &lt;code&gt;space-after-function-name&lt;/code&gt; (it will be removed in 1.0.0). You should switch your code to use the new &lt;a href=&quot;https://eslint.org/docs/rules/space-before-function-parentheses&quot;&gt;&lt;code&gt;space-before-function-parentheses&lt;/code&gt;&lt;/a&gt; as soon as possible.&lt;/p&gt;
&lt;h3 id=&quot;1.0.0-update&quot; tabindex=&quot;-1&quot;&gt;1.0.0 Update&lt;/h3&gt;
&lt;p&gt;We’re very close to 1.0.0. The last piece we’re waiting for is to have the ECMAScript 6 AST finalized so that it’s safe to start writing custom rules using ES6 nodes. You can follow that progress at the &lt;a href=&quot;https://github.com/estree/estree/&quot;&gt;estree&lt;/a&gt; project.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: space-before-function-parentheses replaces space-after-function-name and checkFunctionKeyword (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1618&quot;&gt;#1618&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Don’t count else-if in max-depth (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1835&quot;&gt;#1835&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Don’t flag for-of statement (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1852&quot;&gt;#1852&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Enable globalReturn for Node.js environment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1158&quot;&gt;#1158&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Location of extra paren message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1814&quot;&gt;#1814&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: make rules work with for-of statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1859&quot;&gt;#1859&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: new-cap should allow defining exceptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1424&quot;&gt;#1424&lt;/a&gt;) (Brian Di Palma)&lt;/li&gt;
&lt;li&gt;Fix: Remove unnecessary file exists check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1831&quot;&gt;#1831&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: multi-line option for the curly rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1812&quot;&gt;#1812&lt;/a&gt;) (Hugo Wood)&lt;/li&gt;
&lt;li&gt;New: rule no-throw-literal added (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1791&quot;&gt;#1791&lt;/a&gt;) (Dieter Oberkofler)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add requireReturnDescription for valid-jsdoc (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1833&quot;&gt;#1833&lt;/a&gt;) (Brian Di Palma)&lt;/li&gt;
&lt;li&gt;Update: Backslashes in path (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1818&quot;&gt;#1818&lt;/a&gt;) (Jan Schär)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Espree to 1.9.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1816&quot;&gt;#1816&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1805&quot;&gt;#1805&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Change customformat value to path (suisho)&lt;/li&gt;
&lt;li&gt;Docs: Add a missing word in the Contributing doc (Ben Linskey)&lt;/li&gt;
&lt;li&gt;Docs: add webpack loader to the docs/integrations page (Maxime Thirouin)&lt;/li&gt;
&lt;li&gt;Docs: fix typo in configuring docs (mendenhallmagic)&lt;/li&gt;
&lt;li&gt;Docs: Fix typo in wrap-iife rule doc title (Ben Linskey)&lt;/li&gt;
&lt;li&gt;Docs: Update pages to fix rendering of lists (David Anson)&lt;/li&gt;
&lt;li&gt;Docs: Update pages to fix rendering of lists and fenced code blocks (David Anson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Build: Test using io.js as well (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.14.1 released</title>
    <link href="https://eslint.org/blog/2015/02/eslint-0.14.1-released/"/>
    <updated>2015-02-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/02/eslint-0.14.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Exit code should be 1 for any number of errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1795&quot;&gt;#1795&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Check indentation of first line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1796&quot;&gt;#1796&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: strict rules shouldn’t throw on arrow functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1789&quot;&gt;#1789&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.14.0 released</title>
    <link href="https://eslint.org/blog/2015/02/eslint-0.14.0-released/"/>
    <updated>2015-02-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/02/eslint-0.14.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;more-language-options&quot; tabindex=&quot;-1&quot;&gt;More Language Options&lt;/h3&gt;
&lt;p&gt;0.14.0 adds more language options for parsing JavaScript, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ECMAScript 6 arrow functions&lt;/li&gt;
&lt;li&gt;Global &lt;code&gt;return&lt;/code&gt; statements (for use with Node.js scripts)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these options are off by default, and you can enable them in your configuration file. See &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring&quot;&gt;Configuring ESLint&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h3 id=&quot;ecmascript-6-fixes&quot; tabindex=&quot;-1&quot;&gt;ECMAScript 6 fixes&lt;/h3&gt;
&lt;p&gt;With the introduction of ECMAScript 6 features, a lot of bugs popped up that had to be tracked down. We fixed a large number of bugs related to ES6 features so things like variable scoping should be fairly accurate now.&lt;/p&gt;
&lt;h3 id=&quot;new-rule%3A-indent&quot; tabindex=&quot;-1&quot;&gt;New Rule: indent&lt;/h3&gt;
&lt;p&gt;A rule covering indentation has been one of our long-requested features since ESLint began. We ported the logic from JSCS into a new rule, &lt;a href=&quot;https://eslint.org/docs/rules/indent&quot;&gt;indent&lt;/a&gt;. It has been modified so it’s not exactly the same, and although we provided incorrect attribution initially, that has been fixed to comply with JSCS’s licensing terms. We thank the JSCS team for bringing this to our attention so we could ensure property attribution.&lt;/p&gt;
&lt;h3 id=&quot;1.0.0-is-coming!&quot; tabindex=&quot;-1&quot;&gt;1.0.0 is Coming!&lt;/h3&gt;
&lt;p&gt;We expect to have only a small number of releases before 1.0.0 is released. Our goal is ensuring stability and trying to avoid breaking changes after 1.0.0. To that end, we are going to wait until we see breaking changes stop for a couple of releases before being ready to declare a release as 1.0.0.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Exit code is now error count (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: remove implied eval check from no-eval (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1202&quot;&gt;#1202&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Breaking: Remove node from results (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/957&quot;&gt;#957&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Show error and warning counts in stylish summary (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1746&quot;&gt;#1746&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Allow single line else-if (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1739&quot;&gt;#1739&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: comma-spacing for template literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1736&quot;&gt;#1736&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Don’t crash when $HOME isn’t set (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1465&quot;&gt;#1465&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Don’t throw error for arguments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1759&quot;&gt;#1759&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Don’t warn on computed nonliteral properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1762&quot;&gt;#1762&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Ensure template string references count (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1542&quot;&gt;#1542&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Make no-multi-spaces work for every case (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1603&quot;&gt;#1603&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1659&quot;&gt;#1659&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-undef to work with arrow functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1604&quot;&gt;#1604&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Scoping issues for no-unused-vars (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1733&quot;&gt;#1733&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Scoping issues for no-unused-vars (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1741&quot;&gt;#1741&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Support exceptions in no-multi-spaces (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1755&quot;&gt;#1755&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add predefined Meteor globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1763&quot;&gt;#1763&lt;/a&gt;) (Johan Brook)&lt;/li&gt;
&lt;li&gt;New: Allow parser to be configured (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1624&quot;&gt;#1624&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New: Rule indent (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1022&quot;&gt;#1022&lt;/a&gt;) (Dmitriy Shekhovtsov)&lt;/li&gt;
&lt;li&gt;New: Rule indent (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1022&quot;&gt;#1022&lt;/a&gt;) (Dmitriy Shekhovtsov)&lt;/li&gt;
&lt;li&gt;Revert “New: Rule indent (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1022&quot;&gt;#1022&lt;/a&gt;)” (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add getNodeByRangeIndex method (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1755&quot;&gt;#1755&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Check all assignments for consistent-this (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1513&quot;&gt;#1513&lt;/a&gt;) (Timothy Jones)&lt;/li&gt;
&lt;li&gt;Update: CLIEngine results include warning and error count (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1732&quot;&gt;#1732&lt;/a&gt;) (gyandeeps)&lt;/li&gt;
&lt;li&gt;Update: Fast-path for empty input (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/546&quot;&gt;#546&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: fix eslint indentations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1770&quot;&gt;#1770&lt;/a&gt;) (Dmitriy Shekhovtsov)&lt;/li&gt;
&lt;li&gt;Update: Fix indentation of comment (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Improve CLIEngine.getFormatter() (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1723&quot;&gt;#1723&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Make rules work with arrow functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1508&quot;&gt;#1508&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1509&quot;&gt;#1509&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1493&quot;&gt;#1493&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Replace getTokenByRange(Index-&amp;gt;Start) (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1721&quot;&gt;#1721&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Espree to version 1.8.0 (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add Backbone plugin link (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Docs: Added &lt;code&gt;eslint-enable&lt;/code&gt; inline (Ivan Fraixedes)&lt;/li&gt;
&lt;li&gt;Docs: Added double quotes for JSON keys for comma-spacing and key-spacing rule (Dmitry Polovka)&lt;/li&gt;
&lt;li&gt;Docs: Correct getFormatter() documentation (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1723&quot;&gt;#1723&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: fixed typo in consistent-return docs (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;Docs: fixed typo in no-lone-blocks docs (Vitor Balocco)&lt;/li&gt;
&lt;li&gt;Docs: Forgotten parentheses in code snippet (Ivan Fraixedes)&lt;/li&gt;
&lt;li&gt;Docs: use npm’s keyword route (Tom Vincent)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add Node.js 0.12 testing (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Build: Update sitegen script (Closes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1725&quot;&gt;#1725&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.13.0 released</title>
    <link href="https://eslint.org/blog/2015/01/eslint-0.13.0-released/"/>
    <updated>2015-01-24T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/01/eslint-0.13.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;more-ecmascript-6-support&quot; tabindex=&quot;-1&quot;&gt;More ECMAScript 6 support&lt;/h3&gt;
&lt;p&gt;0.13.0 adds more support for several ECMAScript 6, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Template strings&lt;/li&gt;
&lt;li&gt;Default parameters&lt;/li&gt;
&lt;li&gt;Unicode code point escapes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these options are off by default, and you can enable them in your configuration file. See &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring&quot;&gt;Configuring ESLint&lt;/a&gt; for more information.&lt;/p&gt;
&lt;h3 id=&quot;breaking%3A-block-scoping&quot; tabindex=&quot;-1&quot;&gt;Breaking: Block scoping&lt;/h3&gt;
&lt;p&gt;Additionally, 0.13.0 has full support for block scoping (&lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt;), so all scope-related rules should work the way you expect. This is a breaking change because if you were previously using &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt;, the scope was being calculated incorrectly, and that may result in different behavior than in 0.13.0.&lt;/p&gt;
&lt;h3 id=&quot;deprecating-global-strict-and-no-extra-strict&quot; tabindex=&quot;-1&quot;&gt;Deprecating global-strict and no-extra-strict&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;global-strict&lt;/code&gt; and &lt;code&gt;no-extra-strict&lt;/code&gt; rules have been deprecated in favor of adding this functionality into the &lt;code&gt;strict&lt;/code&gt; rule. We suggest you upgrade to using the updated &lt;code&gt;strict&lt;/code&gt; rule as soon as possible. The &lt;code&gt;global-strict&lt;/code&gt; and &lt;code&gt;no-extra-strict&lt;/code&gt; rules will be removed when 1.0.0 is released.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Update escope (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1642&quot;&gt;#1642&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: disregards leading ‘./’ in ignore pattern or file name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1685&quot;&gt;#1685&lt;/a&gt;) (Chris Montrois)&lt;/li&gt;
&lt;li&gt;Fix: Except object literal methods from func-names (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1699&quot;&gt;#1699&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: generator-star should allow params (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1677&quot;&gt;#1677&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Make no-redeclare work with let (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/917&quot;&gt;#917&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Missing undeclared variables in JSX (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1676&quot;&gt;#1676&lt;/a&gt;) (Yannick Croissant)&lt;/li&gt;
&lt;li&gt;Fix: no-unused-expressions rule incorrectly flagging  yield (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1672&quot;&gt;#1672&lt;/a&gt;) (Rémi Gérard-Marchant)&lt;/li&gt;
&lt;li&gt;Fix: no-unused-vars for JSX (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1673&quot;&gt;#1673&lt;/a&gt; and fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1534&quot;&gt;#1534&lt;/a&gt;) (Yannick Croissant)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add allowPattern option for dot-notation rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1679&quot;&gt;#1679&lt;/a&gt;) (Tim Schaub)&lt;/li&gt;
&lt;li&gt;Update: Add CLIEngine.getFormatter() (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1653&quot;&gt;#1653&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Added globals for: phantom,jquery, prototypejs, shelljs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1704&quot;&gt;#1704&lt;/a&gt;) (Dmitriy Shekhovtsov)&lt;/li&gt;
&lt;li&gt;Update: Combine strict mode rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1246&quot;&gt;#1246&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: no-warning-comments matches on whole word only (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1709&quot;&gt;#1709&lt;/a&gt;) (Nick Fisher)&lt;/li&gt;
&lt;li&gt;Update: Switch to using estraverse-fb (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1712&quot;&gt;#1712&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: The rule spaced-line-comment now also allows tabs and not only spaces as whitespace. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1713&quot;&gt;#1713&lt;/a&gt;) (Dieter Oberkofler)&lt;/li&gt;
&lt;li&gt;Update: use global strict mode everywhere (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1691&quot;&gt;#1691&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Espree to 1.7.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1706&quot;&gt;#1706&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: globals module to latest (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1670&quot;&gt;#1670&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add angularjs-eslint link into the integration doc (Emmanuel DEMEY)&lt;/li&gt;
&lt;li&gt;Docs: add Jasmine rules and eslintplugin npm links (Tom Vincent)&lt;/li&gt;
&lt;li&gt;Docs: Add more info about context (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1330&quot;&gt;#1330&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Fixed example for the space-return-throw-case rule (mpal9000)&lt;/li&gt;
&lt;li&gt;Docs: Make CLA notice more prominent (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update README FAQ (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build Related&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add JSDoc generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1363&quot;&gt;#1363&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.12.0 released</title>
    <link href="https://eslint.org/blog/2015/01/eslint-0.12.0-released/"/>
    <updated>2015-01-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2015/01/eslint-0.12.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;partial-ecmascript-6-support&quot; tabindex=&quot;-1&quot;&gt;Partial ECMAScript 6 support&lt;/h3&gt;
&lt;p&gt;0.12.0 introduces support for several ECMAScript 6 features, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Regular expression &lt;code&gt;y&lt;/code&gt; flag&lt;/li&gt;
&lt;li&gt;Regular expression &lt;code&gt;u&lt;/code&gt; flag&lt;/li&gt;
&lt;li&gt;Binary literals&lt;/li&gt;
&lt;li&gt;Octal literals&lt;/li&gt;
&lt;li&gt;&lt;code&gt;for-of&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Generators&lt;/li&gt;
&lt;li&gt;Object literal syntax changes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these options are off by default, and you can enable them in your configuration file. See &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring&quot;&gt;Configuring ESLint&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;We also have two rules that are specific for ES6: &lt;a href=&quot;https://eslint.org/docs/rules/no-var&quot;&gt;no-var&lt;/a&gt; and &lt;a href=&quot;https://eslint.org/docs/rules/generator-star&quot;&gt;generator-star&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Known limitation:&lt;/strong&gt; Block scope calculation doesn’t work yet for &lt;code&gt;let&lt;/code&gt; and &lt;code&gt;const&lt;/code&gt;. We are actively working on fixing that. This may affect rules like &lt;a href=&quot;https://eslint.org/docs/rules/no-var&quot;&gt;no-unused-vars&lt;/a&gt; until we resolve this (hopefully soon).&lt;/p&gt;
&lt;h3 id=&quot;jsx-support&quot; tabindex=&quot;-1&quot;&gt;JSX support&lt;/h3&gt;
&lt;p&gt;0.12.0 also has full support for the &lt;a href=&quot;http://facebook.github.io/jsx/&quot;&gt;JSX&lt;/a&gt; extension created by Facebook. ESLint now fully supports JSX natively (it’s not transformed before linting). JSX parsing is off by default, and you can enable it in your &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring&quot;&gt;configuration file&lt;/a&gt;. This is being tracked in &lt;a href=&quot;https://github.com/eslint/eslint/issues/917&quot;&gt;#917&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;es6jsx-end-of-life&quot; tabindex=&quot;-1&quot;&gt;es6jsx end-of-life&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;es6jsx&lt;/code&gt; branch is now considered obsolete and changes will continue to be merged into the master branch. Please make sure you’re using the latest stable ESLint going forward.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Allow parser feature flips (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1602&quot;&gt;#1602&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: gen-star rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1617&quot;&gt;#1617&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;New: no-var rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1617&quot;&gt;#1617&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Allow comments in key-spacing groups (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1632&quot;&gt;#1632&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Allow individual newlines in space-in-brackets (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1614&quot;&gt;#1614&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: block-scoped-var reports labels (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1630&quot;&gt;#1630&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: Broken JSX test (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Don’t warn on JSX literals with newlines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1533&quot;&gt;#1533&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Find JSXIdentifier refs in no-unused-vars (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1534&quot;&gt;#1534&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-bitwise reports on bitwise assignment expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1643&quot;&gt;#1643&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Property regex flag checking (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1537&quot;&gt;#1537&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: quotes rule ignores JSX literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1477&quot;&gt;#1477&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Support JSX spread operator (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1634&quot;&gt;#1634&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Track JSX global variable correctly (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1534&quot;&gt;#1534&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Update optionator, --no in help (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1134&quot;&gt;#1134&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;Update: Add a couple JSX tests (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Expose ecmaFeatures on context (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1648&quot;&gt;#1648&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Fully enable JSX support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1640&quot;&gt;#1640&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: several dependencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1377&quot;&gt;#1377&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add angularjs-eslint link into the integration doc (Emmanuel DEMEY)&lt;/li&gt;
&lt;li&gt;Docs: add newline to no-process-env (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1627&quot;&gt;#1627&lt;/a&gt;) (Tom Vincent)&lt;/li&gt;
&lt;li&gt;Docs: Added Fitbit to the list of companies (Igor Zalutsky)&lt;/li&gt;
&lt;li&gt;Docs: Correct alignment in example project tree (Tim Schaub)&lt;/li&gt;
&lt;li&gt;Docs: Document ecmaFeatures (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Remove illegal code fence (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Remove references to Esprima (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.11.0 released</title>
    <link href="https://eslint.org/blog/2014/12/eslint-0.11.0-released/"/>
    <updated>2014-12-30T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/12/eslint-0.11.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;new-parser&quot; tabindex=&quot;-1&quot;&gt;New parser&lt;/h3&gt;
&lt;p&gt;0.11.0 is the first version of ESLint to run on our own parser, &lt;a href=&quot;https://github.com/eslint/espree&quot;&gt;Espree&lt;/a&gt;. Espree is currently configured to behave like Esprima 1.2.2, which was the parser that 0.10.0 was using, so you should see no differences in the behavior of ESLint related to the parser change.&lt;/p&gt;
&lt;p&gt;Making this change allowed us to fix a couple of bugs we’ve had open that were related to Esprima issues.&lt;/p&gt;
&lt;h3 id=&quot;ecmascript-5-by-default&quot; tabindex=&quot;-1&quot;&gt;ECMAScript 5 by default&lt;/h3&gt;
&lt;p&gt;This is the first release where we’ve started transitioning all settings to be ECMAScript 5 by default. ECMAScript 5 is the most widely-supported version of JavaScript, and so we want to assume ECMAScript 5 code and allow users to opt-in to ECMAScript 3 and ECMAScript 6 features.&lt;/p&gt;
&lt;p&gt;Part of this involved a change made for &lt;a href=&quot;https://github.com/eslint/eslint/issues/1484&quot;&gt;#1484&lt;/a&gt;, which updated the &lt;code&gt;dot-notation&lt;/code&gt; rule to allow keywords be used (as allowed by ECMAScript 5 but not ECMAScript 3). The option &lt;code&gt;allowKeywords&lt;/code&gt; was added with a default value of &lt;code&gt;true&lt;/code&gt; so that you can opt-out of this behavior if you need to support an ECMAScript 3 environment.&lt;/p&gt;
&lt;p&gt;This means the following used to result in a warning but no longer does in 0.11.0:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;obj&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;delete &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: add es3 config option to dot-notation rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1484&quot;&gt;#1484&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Configuration via package.json (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/698&quot;&gt;#698&lt;/a&gt;) (Michael Mclaughlin)&lt;/li&gt;
&lt;li&gt;New: space-after-function-name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1340&quot;&gt;#1340&lt;/a&gt;) (Roberto Vidal)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Adding regexp literal exception (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1589&quot;&gt;#1589&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Fix: brace-style stroustrup should report on cuddled elseif (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1583&quot;&gt;#1583&lt;/a&gt;) (Ian Christian Myers)&lt;/li&gt;
&lt;li&gt;Fix: check if next statement is on newline when warning against extra semicolons. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1580&quot;&gt;#1580&lt;/a&gt;) (Evan You)&lt;/li&gt;
&lt;li&gt;Fix: column location of key-spacing with additional tokens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1458&quot;&gt;#1458&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: function arguments now count towards no-shadow check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1584&quot;&gt;#1584&lt;/a&gt;) (Glen Mailer)&lt;/li&gt;
&lt;li&gt;Fix: padded-blocks incorrectly complained on comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1416&quot;&gt;#1416&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: valid-jsdoc should recognize @class (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1585&quot;&gt;#1585&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: yoda treats negative numbers as literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1571&quot;&gt;#1571&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: add yoda exception for range tests (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1561&quot;&gt;#1561&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Set environments w/ globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1577&quot;&gt;#1577&lt;/a&gt;) (Elan Shanker)&lt;/li&gt;
&lt;li&gt;Update: Switch to use Espree (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1595&quot;&gt;#1595&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Update Espree to 1.3.1 (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build-Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: tag correct commit (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1606&quot;&gt;#1606&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Introducing Espree, an Esprima alternative</title>
    <link href="https://eslint.org/blog/2014/12/espree-esprima/"/>
    <updated>2014-12-24T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/12/espree-esprima/</id>
    <content type="html">&lt;p&gt;Since ESLint’s very first release, we’ve built on top of the open source &lt;a href=&quot;http://esprima.org/&quot;&gt;Esprima&lt;/a&gt; parser. Doing so allowed us to get a drop-in, production-ready parser on which we could built the linter of our dreams. That meant we could spend less time worrying about parsing JavaScript code and more time figuring out the best ways to work with that code. ESLint is built around the SpiderMonkey AST produced by Esprima and that decision served us well up until this point.&lt;/p&gt;
&lt;p&gt;Earlier this year as we were attempting to include ECMAScript 6 and JSX support in ESLint, we ran into a lot of problems. Esprima’s ECMAScript 6 support hadn’t been published and there hadn’t been a new release in several months. In the meantime, Facebook had created its own fork that had both ECMAScript 6 and JSX support, and so we attempted to use that instead, hoping for a drop-in replacement. Unfortunately, we found several key disparities between the way it worked and Esprima 1.2.2, the version upon which ESLint is currently based. These made it impossible to continue forward because it would have required massive changes not only to our own code base, but also to third-party plugins in the ESLint ecosystem. We tried filing bugs to get answers to these issues and unfortunately were unable to resolve them.&lt;/p&gt;
&lt;p&gt;We also investigated using &lt;a href=&quot;http://marijnhaverbeke.nl/acorn/&quot;&gt;Acorn&lt;/a&gt;, another fantastic project that produces a SpiderMonkey AST. Unfortunately, ESLint had grown to rely on some Esprima-specific features such as the way tokens are represented and how comments are attached to nodes. Having the same AST wasn’t enough, we would either have to change a large amount of code or create an adapter that would have to be kept in sync for the foreseeable future.&lt;/p&gt;
&lt;p&gt;After a lot of thought and consideration, we decided the correct course of action was to create our own parser that we could control. This brings us in line with both JSHint and JSLint, as both have their own parsers (that are not split out from the projects).&lt;/p&gt;
&lt;h2 id=&quot;enter-espree&quot; tabindex=&quot;-1&quot;&gt;Enter Espree&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/eslint/espree&quot;&gt;Espree&lt;/a&gt; is a fork of Esprima starting at version 1.2.2. This was the last stable released version that ESLint used and we wanted to keep everything working as much as possible. The plan is quickly implement all of ECMAScript 6 and JSX so that ESLint can support these much-requested variants. We are doing this in a very deliberate manner, pulling over one feature at a time and verifying it against a new suite of tests. In doing so, we hope to avoid the breaking changes of the Esprima Harmony branch so that ESLint can continue to work with the new syntax.&lt;/p&gt;
&lt;p&gt;As with the ESLint project itself, we are committed to fast responses to issues and pull requests, and will be doing frequent releases as enhancements and bug fixes are made. In fact, we’ve already had &lt;a href=&quot;https://github.com/eslint/espree/releases&quot;&gt;four releases&lt;/a&gt; in the past week.&lt;/p&gt;
&lt;p&gt;The immediate short-term goal is to have an API that is a drop-in replacement for Esprima in projects that use it. The next version of ESLint will be built on Espree instead of Esprima.&lt;/p&gt;
&lt;h3 id=&quot;feature-flags&quot; tabindex=&quot;-1&quot;&gt;Feature Flags&lt;/h3&gt;
&lt;p&gt;One of the biggest differences between Esprima and Espree is the use of feature flags to turn on or off additional language features. Projects attempting to implement ECMAScript 6 have often been slowed by feeling the need to implement every part of the massive specification before releasing. Espree’s approach is different: we implement each part of the spec and hide it behind a feature flag. That means no backwards-incompatible changes are introduced when a new ECMAScript feature is implemented in the parser. You need to opt-in to using that new feature, otherwise, it stays off.&lt;/p&gt;
&lt;p&gt;Take a look at the &lt;a href=&quot;https://github.com/eslint/espree#usage&quot;&gt;usage instructions&lt;/a&gt; for more information on the currently available feature flags.&lt;/p&gt;
&lt;h2 id=&quot;how-you-can-help&quot; tabindex=&quot;-1&quot;&gt;How You Can Help&lt;/h2&gt;
&lt;p&gt;There are a number of ways you can help the Espree project:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Are you a designer?&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;We need help &lt;a href=&quot;https://github.com/eslint/espree/issues/24&quot;&gt;designing a logo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;We also need help &lt;a href=&quot;https://github.com/eslint/espree/issues/25&quot;&gt;designing a website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are you an engineer?&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;File bugs for things that aren’t working quite right&lt;/li&gt;
&lt;li&gt;Fix bugs&lt;/li&gt;
&lt;li&gt;Implement new features&lt;/li&gt;
&lt;li&gt;Write some documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;other-questions&quot; tabindex=&quot;-1&quot;&gt;Other Questions&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Will you be generating a Shift AST in the future?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://engineering.shapesecurity.com/2014/12/announcing-shift-javascript-ast.html&quot;&gt;Shift AST&lt;/a&gt; specification was just announced today, and so we’ll be evaluating its response and the technical details going forward. Assuming this is a change the ESLint/Espree community wants, we’ll investigate the effort to optionally support the Shift AST. This decision will also be informed by the amount of uptake the Shift AST specification receives in the community as a whole.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Are you going to support JSX?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yes. We’ve received enough requests for JSX support that it makes sense to include it as a feature flag in Espree.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Are you going to support Flow types or TypeScript?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There’s a lot going on in the world of optional typing for JavaScript. At the moment, it seems to early to call a winner and decide which type system is the correct one to implement. We’ll continue to watch this area very closely to see if consensus can be reached. If so, we’d love to implement optional typing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How frequently will you release?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;At least once a month, hopefully more frequently, until all of ECMAScript 6 and JSX is implemented. Then we will focus on any bug reports that come in and doing patch releases to fix them.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.10.2 released</title>
    <link href="https://eslint.org/blog/2014/12/eslint-0.10.2-released/"/>
    <updated>2014-12-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/12/eslint-0.10.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: detect for…in in no-loop-func (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1573&quot;&gt;#1573&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Fix: operator-assignment addition is non-commutative (fixes&lt;a href=&quot;https://github.com/eslint/eslint/issues/1556&quot;&gt;#1556&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: simplify comma-spacing logic (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1562&quot;&gt;#1562&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.10.1 released</title>
    <link href="https://eslint.org/blog/2014/12/eslint-0.10.1-released/"/>
    <updated>2014-12-06T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/12/eslint-0.10.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: comma-spacing and comma-style to work with array literals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1492&quot;&gt;#1492&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: comma-spacing has false positives when parenthesis are used (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1457&quot;&gt;#1457&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;li&gt;Fix: prevent crash on empty blocks in no-else-return (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1527&quot;&gt;#1527&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Restrict use-isnan violations to comparison operators. (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1535&quot;&gt;#1535&lt;/a&gt;) (Jordan Harband)&lt;/li&gt;
&lt;li&gt;Fix: wrong op index in no-multi-spaces (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1547&quot;&gt;#1547&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-changes&quot; tabindex=&quot;-1&quot;&gt;Build Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Ensure changelog works with large semver versions (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Build: Fix md to html conversion regex (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1525&quot;&gt;#1525&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Build: make the “gensite” target work when DOCS_DIR does not exist (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1530&quot;&gt;#1530&lt;/a&gt;) (Jeff Williams)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: alphabetize the “Stylistic Issues” section (Jeff Williams)&lt;/li&gt;
&lt;li&gt;Docs: badges should only refer to master branch (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Docs: Fix v0.10.0 changelog (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: better operator regex in use-isnan rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1551&quot;&gt;#1551&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.10.0 released</title>
    <link href="https://eslint.org/blog/2014/11/eslint-0.10.0-released/"/>
    <updated>2014-11-27T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/11/eslint-0.10.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;command-line-interface&quot; tabindex=&quot;-1&quot;&gt;Command Line Interface&lt;/h3&gt;
&lt;p&gt;The CLI for ESLint has been updated, including some breaking changes.&lt;/p&gt;
&lt;p&gt;First, the &lt;code&gt;node_modules&lt;/code&gt; directory will automatically be ignored in all projects (#1163). This comes after finding that many projects added &lt;code&gt;node_modules&lt;/code&gt; to their &lt;code&gt;.eslintignore&lt;/code&gt; files and fielding many questions about why ESLint was slow (answer: because it was linting &lt;code&gt;node_modules&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Second, it’s now possible to lint files without an extension (#1131). All you have to do is pass them in on the command line, such as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eslint file-without-ext
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ESLint will not automatically lint files without extensions in directories that are passed on the command line. You can also pass files without a &lt;code&gt;.js&lt;/code&gt; extension directly on the command line to lint them. In short, ESLint will lint anything you pass directly on the command line without question.&lt;/p&gt;
&lt;p&gt;Third, you can now specify alternate file extensions for ESLint to find when looking in directories (#801). This is done via the &lt;code&gt;--ext&lt;/code&gt; flag. By default, ESLint looks for all files with a &lt;code&gt;.js&lt;/code&gt; extension. You can change that extension by specifying it with &lt;code&gt;--ext&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eslint --ext .js2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will cause ESLint to look only for files with a &lt;code&gt;.js2&lt;/code&gt; extension. You can specify multiple extensions to search for as well:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eslint --ext .js --ext .js2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will cause ESLint to look for files with either &lt;code&gt;.js&lt;/code&gt; or &lt;code&gt;.js2&lt;/code&gt; extensions.&lt;/p&gt;
&lt;h3 id=&quot;cliengine-updated&quot; tabindex=&quot;-1&quot;&gt;CLIEngine updated&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;CLIEngine&lt;/code&gt; object has been updated to allow you to specify &lt;code&gt;extensions&lt;/code&gt;, which corresponds to the &lt;code&gt;--ext&lt;/code&gt; flag. You can read more about this in the &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api&quot;&gt;Node.js API documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;space-unary-word-ops-is-now-space-unary-ops&quot; tabindex=&quot;-1&quot;&gt;space-unary-word-ops is now space-unary-ops&lt;/h3&gt;
&lt;p&gt;Sometimes when creating a new rule it becomes apparent that it should actually be combined with an existing rule. This is what happened with &lt;code&gt;space-unary-word-ops&lt;/code&gt;. The new &lt;code&gt;space-unary-ops&lt;/code&gt; replaces it and adds support for non-word unary operations.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Allow extensionless files to be passed on CLI (fixes #1131) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: ignore node_modules by default (fixes #1163) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Add space-unary-ops rules (#1346) (Marcin Kumorek)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add ability to time individual rules (fixes #1437) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;New: add no-inline-comment rule (fixes #1366) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;New: Add operator-assignment rule (fixes #1420) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;New: Allow other file extensions (fixes #801) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Add Object and Function as exceptions in new-cap (refs #1487) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Adds clamping to getSource beforeCount (fixes #1427) (Greg Gianforcaro)&lt;/li&gt;
&lt;li&gt;Fix: check function call arguments in comma-spacing (fixes #1515) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Collect variables declare in switch-case.(fixes #1453) (chris)&lt;/li&gt;
&lt;li&gt;Fix: crash in no-multi-spaces on empty array elements (fixes #1418) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Don’t explode on directory traversal (fixes #1452) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: env rules merging for command line config (fixes #1271) (Roberto Vidal)&lt;/li&gt;
&lt;li&gt;Fix: ignore undefined identifiers in typeof (fixes #1482) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Ignoring empty comments. (fixes #1488) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;Fix: JSDoc parsing by updating doctrine (fixes #1442) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: message for numeric property names in quote-props (fixes #1459) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-fallthrough should work when semis are missing (fixes #1447) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: remove extra capture group (Nate-Wilkins)&lt;/li&gt;
&lt;li&gt;Fix: single quotes (Nate-Wilkins)&lt;/li&gt;
&lt;li&gt;Fix: typo: iffe to iife, none to non (Michael Ficarra)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add &lt;code&gt;beforeAll&lt;/code&gt; and &lt;code&gt;afterAll&lt;/code&gt; to the Jasmine globals (fixes #1478) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Update: Add Event to browser globals (fixes #1474) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Add exception options to space-in-parens (fixes #1368) (David Clark)&lt;/li&gt;
&lt;li&gt;Update: Add no-cond-assign option to disallow nested assignments in conditionals (fixes #1444) (Jeff Williams)&lt;/li&gt;
&lt;li&gt;Update: allow distinct alignment groups in key-spacing (fixes #1439) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: refactor tokens API (refs #1212) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Update: Remove shebang workaround in spaced-line-comment (fixes #1433) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Update: restore the “runs” global present in Jasmine 1.3 (fixes #1498) (Michał Gołębiowski)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: change ‘and’ to ‘an’ in docs/rules/valid-jsdoc.md (fixes #1441) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Docs: Explain .eslintignore features (fixes #1094) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Fix broken code fences in key-spacing docs (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Remove assumption about the rule config (Alexander Schmidt)&lt;/li&gt;
&lt;li&gt;Docs: update badges (Yoshua Wuyts)&lt;/li&gt;
&lt;li&gt;Docs: Update pages to fix rendering of lists and fenced code blocks (David Anson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build-Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add check for license issues (fixes #782) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Build: Escape period in regex (fixes #1428) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Build: Filter and sort versions in gensite (fixes #1430) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: ‘.md’ to ‘.html’ with anchors (fixes #1415) (Nate-Wilkins)&lt;/li&gt;
&lt;li&gt;Revert “Fix: ‘.md’ to ‘.html’ with anchors (fixes #1415)” (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Announcing ES6 and JSX Support</title>
    <link href="https://eslint.org/blog/2014/11/es6-jsx-support/"/>
    <updated>2014-11-15T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/11/es6-jsx-support/</id>
    <content type="html">&lt;p&gt;We’ve been working on &lt;a href=&quot;https://github.com/eslint/eslint/issues/1291&quot;&gt;#1291&lt;/a&gt; for a while to see how we could add support for ECMAScript 6 and JSX into ESLint. While we were investigating adding ES6 support, we were also getting a fair amount of requests to add JSX support. We soon realized that Facebook’s Esprima fork that supports both ES6 and JSX would be the easiest way to move forward.&lt;/p&gt;
&lt;p&gt;This left us with some questions about how to support ES6 and JSX in ESLint without disrupting the user experience for those who don’t want support. When you are working in a strict ES5 environment, you don’t want ES6 and JSX patterns to be parsed as correct, you want a syntax error to be thrown. So a lot of the work has been going into thinking through this problem - ensuring those who want the support can get it while ensuring those who don’t will get the syntax errors that they expect.&lt;/p&gt;
&lt;h2 id=&quot;work-has-begun&quot; tabindex=&quot;-1&quot;&gt;Work has begun&lt;/h2&gt;
&lt;p&gt;Beginning today, work for integrating ES6 and JSX will begin. What that means is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Work begins on the &lt;code&gt;es6jsx&lt;/code&gt; branch on the main &lt;a href=&quot;https://github.com/eslint/eslint/tree/es6jsx&quot;&gt;ESLint repo&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Development will be ongoing on both &lt;code&gt;master&lt;/code&gt; and &lt;code&gt;es6jsx&lt;/code&gt; branches simultaneously. The &lt;code&gt;es6jsx&lt;/code&gt; branch will periodically pull in changes from &lt;code&gt;master&lt;/code&gt; to stay up-to-date.&lt;/li&gt;
&lt;li&gt;Issues will be labeled &lt;a href=&quot;https://github.com/eslint/eslint/labels/es6jsx&quot;&gt;es6jsx&lt;/a&gt; if they directly relate to this support.&lt;/li&gt;
&lt;li&gt;Release candidates will regularly be published to npm with the &lt;code&gt;es6jsx&lt;/code&gt; tag.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;testing-it-out&quot; tabindex=&quot;-1&quot;&gt;Testing it out&lt;/h2&gt;
&lt;p&gt;You can install the latest ES6/JSX enabled version of ESLint via npm:&lt;/p&gt;
&lt;p&gt;npm i eslint@es6jsx&lt;/p&gt;
&lt;p&gt;Please test this out and let us know what you think.&lt;/p&gt;
&lt;p&gt;By default, you’ll still be in ES5 mode. In order to enable ES6 and/or JSX, you can add that information to your &lt;code&gt;.eslintrc&lt;/code&gt; file. See the &lt;a href=&quot;https://github.com/eslint/eslint/tree/es6jsx/docs/configuring#specifying-language-options&quot;&gt;documentation&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This is not a production-ready version of ESLint. This is a prerelease version to gather feedback. Please don’t incorporate this version into your build system.&lt;/p&gt;
&lt;h2 id=&quot;how-you-can-help&quot; tabindex=&quot;-1&quot;&gt;How you can help&lt;/h2&gt;
&lt;p&gt;We could use your help to make progress on adding ES6 and JSX support to ESLint:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are still many tests that are failing due to incompatibilities between Esprima 1.2.2 and the latest version, upon which Facebook’s Esprima fork is based. We’ve opened &lt;a href=&quot;https://code.google.com/p/esprima/issues/detail?id=607&quot;&gt;an issue&lt;/a&gt; with Esprima that we need help resolving one way or another. If you, or someone you know, works on Esprima, please help us push this to a conclusion.&lt;/li&gt;
&lt;li&gt;We need &lt;a href=&quot;https://github.com/eslint/eslint/blob/es6jsx/tests/lib/eslint.js#L2340&quot;&gt;more tests&lt;/a&gt; to verify that our support is complete and functioning as intended.&lt;/li&gt;
&lt;li&gt;File issues for anything in the &lt;code&gt;es6jsx&lt;/code&gt; release that doesn’t seem to work correctly.&lt;/li&gt;
&lt;li&gt;We depend heavily on &lt;a href=&quot;https://github.com/Constellation/escope/&quot;&gt;escope&lt;/a&gt; for calculating correct variable scoping. Before rules like &lt;code&gt;no-unused-vars&lt;/code&gt; can work correctly, &lt;code&gt;escope&lt;/code&gt; needs to be updated to &lt;a href=&quot;https://github.com/Constellation/escope/issues/33&quot;&gt;support ES6&lt;/a&gt;. Once that happens, we can work with others to create a fork that adds in scoping information for JSX.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;when-will-it-be-done%3F&quot; tabindex=&quot;-1&quot;&gt;When will it be done?&lt;/h2&gt;
&lt;p&gt;We would like to ship a version of ESLint that supports ES6 and JSX syntax before the end of the year. It’s likely that we’ll need to include incremental support for both, so the first official release will likely just feature the ability to parse ES6 and JSX without throwing syntax errors. We’ll need to continue working on adding variable scoping and other capabilities over time.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.9.2 released</title>
    <link href="https://eslint.org/blog/2014/11/eslint-0.9.2-released/"/>
    <updated>2014-11-01T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/11/eslint-0.9.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: ! negates .eslintignore patterns (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1093&quot;&gt;#1093&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: ‘.md’ to ‘.html’ with anchors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1415&quot;&gt;#1415&lt;/a&gt;) (Nate-Wilkins)&lt;/li&gt;
&lt;li&gt;Fix: add severity flag for ignored file warning (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1401&quot;&gt;#1401&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Allow line breaks in key-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1407&quot;&gt;#1407&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: check switch statements in space-before-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1397&quot;&gt;#1397&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: disable colors during test run (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1395&quot;&gt;#1395&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Keep sinon at ~1.10.3 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1406&quot;&gt;#1406&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: let fs.stat throw if a file does not exist (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1296&quot;&gt;#1296&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Nested occurrences of no-else-return now show multiple reports (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1369&quot;&gt;#1369&lt;/a&gt;) (Jordan Hawker)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Option type for mixed tabs and spaces (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1374&quot;&gt;#1374&lt;/a&gt;) (Max Nordlund)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: add &lt;code&gt;isPathIgnored&lt;/code&gt; method to CLIEngine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1392&quot;&gt;#1392&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: changing eslint to ESLint and add missing backtick (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Docs: Documents the functionality to load a custom formatter from a file (Adam Baldwin)&lt;/li&gt;
&lt;li&gt;Docs: fix rule name in example configuration (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build&quot; tabindex=&quot;-1&quot;&gt;Build&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: add coveralls integration (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1411&quot;&gt;#1411&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.9.1 released</title>
    <link href="https://eslint.org/blog/2014/10/eslint-0.9.1-released/"/>
    <updated>2014-10-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/10/eslint-0.9.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: plugins without rulesConfig causes crash (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1388&quot;&gt;#1388&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: fix link on governance model (azu)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.9.0 released</title>
    <link href="https://eslint.org/blog/2014/10/eslint-0.9.0-released/"/>
    <updated>2014-10-24T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/10/eslint-0.9.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;plugins&quot; tabindex=&quot;-1&quot;&gt;Plugins&lt;/h3&gt;
&lt;p&gt;Plugins can now be shipped with a default configuration specified. For more information, see the &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-plugins&quot;&gt;plugins documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;comma-spacing&quot; tabindex=&quot;-1&quot;&gt;Comma Spacing&lt;/h3&gt;
&lt;p&gt;There’s a new &lt;code&gt;comma-spacing&lt;/code&gt; rule, so we removed comma spacing checks from &lt;code&gt;space-infix-ops&lt;/code&gt; to consolidate that functionality.&lt;/p&gt;
&lt;h3 id=&quot;cliengine-updated&quot; tabindex=&quot;-1&quot;&gt;CLIEngine updated&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;CLIEngine&lt;/code&gt; object has been updated with more functionality for tools developers. You can now use it to lint plain text via a &lt;code&gt;executeOnText()&lt;/code&gt; method and a &lt;code&gt;getConfigForFile()&lt;/code&gt; method that returns the calculated configuration information for a given file. You can read more about this in the &lt;a href=&quot;https://eslint.org/docs/developer-guide/nodejs-api&quot;&gt;Node.js API documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;governance-model&quot; tabindex=&quot;-1&quot;&gt;Governance Model&lt;/h3&gt;
&lt;p&gt;With this release, we’re introducing the &lt;a href=&quot;https://eslint.org/docs/developer-guide/governance&quot;&gt;ESLint Governance Model&lt;/a&gt; to help more people become involved with the project. The governance model establishes the rules by which contributors can increase their involvement with the project and influence its direction.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Removed comma spacing check from space-infix-ops (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1361&quot;&gt;#1361&lt;/a&gt;) (vegetableman)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: add --quiet option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/905&quot;&gt;#905&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;New: Add key-spacing rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1280&quot;&gt;#1280&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;New: add rule for multiple empty lines (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1254&quot;&gt;#1254&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;New: add rule for padded blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1278&quot;&gt;#1278&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;New: add space-before-blocks rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1277&quot;&gt;#1277&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;New: add spaced-line-comment rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1345&quot;&gt;#1345&lt;/a&gt;) (Greg Cochard)&lt;/li&gt;
&lt;li&gt;New: Added comma-spacing rule (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/628&quot;&gt;#628&lt;/a&gt;, Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1319&quot;&gt;#1319&lt;/a&gt;) (vegetableman)&lt;/li&gt;
&lt;li&gt;New: Added comma-style rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1282&quot;&gt;#1282&lt;/a&gt;) (vegetableman)&lt;/li&gt;
&lt;li&gt;New: added no-multi-spaces rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/630&quot;&gt;#630&lt;/a&gt;) (vegetableman)&lt;/li&gt;
&lt;li&gt;New: Added no-process-env rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/657&quot;&gt;#657&lt;/a&gt;) (vegetableman)&lt;/li&gt;
&lt;li&gt;New: Adding in rule for irregular whitespace checking. (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1024&quot;&gt;#1024&lt;/a&gt;) (Jonathan Kingston)&lt;/li&gt;
&lt;li&gt;New: Allow reading from STDIN (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/368&quot;&gt;#368&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: add rule ensuring &lt;a href=&quot;https://github.com/eslint/eslint/issues/1258&quot;&gt;#1258&lt;/a&gt; is fixed by recent rewrite (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1258&quot;&gt;#1258&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: addressed linting errors (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: allow comma-last with object properties having line breaks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1314&quot;&gt;#1314&lt;/a&gt;) (vegetableman)&lt;/li&gt;
&lt;li&gt;Fix: Ensure messages are sorted by line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1343&quot;&gt;#1343&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Make sure shebang comment node is removed (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1352&quot;&gt;#1352&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-comma-dangle violation in unit test and Makefile.js/lint not checking return codes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1306&quot;&gt;#1306&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;Fix: no-fallthrough incorrectly flagged falls through annotations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1353&quot;&gt;#1353&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: no-shadow rule should consider function expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1322&quot;&gt;#1322&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: resolve linting issue in (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1339&quot;&gt;#1339&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: space-in-parens should not throw for multiline statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1351&quot;&gt;#1351&lt;/a&gt;) (Jary)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: add “as-needed” option to quote-props rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1279&quot;&gt;#1279&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Update: Add CLIEngine#getConfigForFile (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1309&quot;&gt;#1309&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Add missing environments and fix sorting/grouping of rules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1307&quot;&gt;#1307&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1308&quot;&gt;#1308&lt;/a&gt;) (David Anson)&lt;/li&gt;
&lt;li&gt;Update: add space after function keyword check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1276&quot;&gt;#1276&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Update: Add support for plugin default configuration (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1358&quot;&gt;#1358&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update: Added arraysInObjects and objectsInObjects options to space-in-brackets rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1265&quot;&gt;#1265&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1302&quot;&gt;#1302&lt;/a&gt;) (vegetableman)&lt;/li&gt;
&lt;li&gt;Update: remove globals present only in Jasmine plugins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1326&quot;&gt;#1326&lt;/a&gt;) (Michał Gołębiowski)&lt;/li&gt;
&lt;li&gt;Update: split propertyName from singleValue in space-in-brackets (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1253&quot;&gt;#1253&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Update: turn on comma-style for project (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1316&quot;&gt;#1316&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add BountySource badge to README (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add Contributor Model (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1341&quot;&gt;#1341&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add docs on Node.js API (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1247&quot;&gt;#1247&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add recommended keywords for plugins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1248&quot;&gt;#1248&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add reference to CLA (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Added “the native web” to the list of companies that use ESLint. (Golo Roden)&lt;/li&gt;
&lt;li&gt;Docs: added more Related Rules sections (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1347&quot;&gt;#1347&lt;/a&gt;) (Delapouite)&lt;/li&gt;
&lt;li&gt;Docs: Correct a few misspelled words (David Anson)&lt;/li&gt;
&lt;li&gt;Docs: Explain global vs. local plugins (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1238&quot;&gt;#1238&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: fix eqeqeq isNullCheck comment (Denis Sokolov)&lt;/li&gt;
&lt;li&gt;Docs: Fix sorting of rules within each section (David Anson)&lt;/li&gt;
&lt;li&gt;Docs: fixed broken link and changed warning level to error level (vegetableman)&lt;/li&gt;
&lt;li&gt;Docs: Remove moot integration plugins (Sindre Sorhus)&lt;/li&gt;
&lt;li&gt;Docs: Update multiple pages to fix rendering of fenced code blocks (David Anson)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build-Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: add version numbers to docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1170&quot;&gt;#1170&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Build: separate site publishing form generation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1356&quot;&gt;#1356&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.8.2 released</title>
    <link href="https://eslint.org/blog/2014/09/eslint-0.8.2-released/"/>
    <updated>2014-09-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/09/eslint-0.8.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: load .eslintrc from HOME (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1262&quot;&gt;#1262&lt;/a&gt;) (Beau Gunderson)&lt;/li&gt;
&lt;li&gt;Fix: Load .eslintrc in directory with $HOME as an ancestor (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1266&quot;&gt;#1266&lt;/a&gt;) (Beau Gunderson)&lt;/li&gt;
&lt;li&gt;Fix: strict should check function expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1244&quot;&gt;#1244&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: add ignoreCase option to sort-vars (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1272&quot;&gt;#1272&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;New: Add sharable rule settings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1233&quot;&gt;#1233&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: add finally to space-after-keywords documentation (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Docs: add intellij plugin to integrations (ido)&lt;/li&gt;
&lt;li&gt;Docs: Changing NPM to npm (Peter deHaan)&lt;/li&gt;
&lt;li&gt;Docs: Fix broken Markdown on configuration page (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Fix reference to wrong rule name (Harry Wolff)&lt;/li&gt;
&lt;li&gt;Docs: fix typo (Barry Handelman)&lt;/li&gt;
&lt;li&gt;Docs: fix typo in no-ex-assign documentation (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Docs: fix vars-on-top documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1234&quot;&gt;#1234&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Docs: Fixed a typo in &lt;a href=&quot;http://brace-style.md/&quot;&gt;brace-style.md&lt;/a&gt; (Anton Antonov)&lt;/li&gt;
&lt;li&gt;Docs: Update README with links and FAQs (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Updated contribution guidelines to add accepted/bounty issues descriptions (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dependency-upgrades&quot; tabindex=&quot;-1&quot;&gt;Dependency Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: doctrine to 0.5.2 (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: eslint-tester to latest (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: esprima to 1.2.2 (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: Most dev dependencies (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: shelljs to 0.3.0 (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Upgrade: upgrade outdated dependencies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1251&quot;&gt;#1251&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.8.1 released</title>
    <link href="https://eslint.org/blog/2014/09/eslint-0.8.1-released/"/>
    <updated>2014-09-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/09/eslint-0.8.1-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Ensure exit code is 1 when there’s a syntax error (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1239&quot;&gt;#1239&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: vars-on-top directive support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1235&quot;&gt;#1235&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: Avoid mutating node.range in max-len (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1224&quot;&gt;#1224&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: space-in-brackets to allow exceptions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1142&quot;&gt;#1142&lt;/a&gt;) (Brandyn Bennett)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: fix up vars-on-top documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1234&quot;&gt;#1234&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Docs: Typo, add missing quotation mark (Ádám Lippai)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.8.0 released</title>
    <link href="https://eslint.org/blog/2014/09/eslint-0.8.0-released/"/>
    <updated>2014-09-05T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/09/eslint-0.8.0-released/</id>
    <content type="html">&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;plugins&quot; tabindex=&quot;-1&quot;&gt;Plugins&lt;/h3&gt;
&lt;p&gt;This is the first version of ESLint that formally supports shareable plugins. Currently, plugins allow you to bundle several rules together and publish them on &lt;a href=&quot;https://npmjs.org/&quot;&gt;npm&lt;/a&gt;. This allows you to share groups of rules easily with others. Creating plugins is very simple:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create an npm package with the name &lt;code&gt;eslint-plugin-{your plugin name}&lt;/code&gt; such as &lt;code&gt;eslint-plugin-foo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Export an object that has a &lt;code&gt;rules&lt;/code&gt; property. The &lt;code&gt;rules&lt;/code&gt; property should contain keys that are your rule IDs and values that are the rule implementation.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For more information, see the &lt;a href=&quot;https://eslint.org/docs/developer-guide/working-with-plugins&quot;&gt;plugins documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;ignore-files&quot; tabindex=&quot;-1&quot;&gt;Ignore files&lt;/h3&gt;
&lt;p&gt;Due to some feedback we received regarding &lt;code&gt;.eslintignore&lt;/code&gt; files, we have decided to automatically duplicate and append &lt;code&gt;/**&lt;/code&gt; to every entry in the file. This is to address the issue where simple directory names would not match files within that directory. For example, using &lt;code&gt;node_modules/&lt;/code&gt; would not ignore all files in &lt;code&gt;node_modules/&lt;/code&gt;, so now we will use that rule plus &lt;code&gt;node_modules/**&lt;/code&gt; to ensure all files in the directory are ignored.&lt;/p&gt;
&lt;h3 id=&quot;performance-improvements&quot; tabindex=&quot;-1&quot;&gt;Performance improvements&lt;/h3&gt;
&lt;p&gt;There were several fixes made to improve performance. On our benchmark, we’ve sped up processing time by 100-200ms (roughly a 10% improvement).&lt;/p&gt;
&lt;h3 id=&quot;no-global-strict-is-now-global-strict&quot; tabindex=&quot;-1&quot;&gt;no-global-strict is now global-strict&lt;/h3&gt;
&lt;p&gt;In an effort to embrace different coding preferences, we’ve changed the &lt;code&gt;no-global-strict&lt;/code&gt; rule (which disallowed &lt;code&gt;&amp;quot;use strict&amp;quot;&lt;/code&gt; in the global scope) to &lt;code&gt;[global-strict](https://eslint.org/docs/rules/global-strict)&lt;/code&gt;. This allows you to either enforce or disallow global &lt;code&gt;&amp;quot;use strict&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;cliengine-exported%2C-cli-deprecated&quot; tabindex=&quot;-1&quot;&gt;CLIEngine exported, cli deprecated&lt;/h3&gt;
&lt;p&gt;ESLint now exports the &lt;code&gt;CLIEngine&lt;/code&gt; interface, which is what powers the ESLint command line utility. If you are writing plugins for other systems that make use of the ESLint &lt;code&gt;cli&lt;/code&gt; object, then you should transition to using &lt;code&gt;CLIEngine&lt;/code&gt; instead.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;cli&lt;/code&gt; object will stop being exported in a future version of ESLint.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Change no-global-strict to global-strict and add “always” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/989&quot;&gt;#989&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Breaking: Ignore children of all patterns by adding “/**” (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1069&quot;&gt;#1069&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New:  Adding ‘vars-on-top’ rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1148&quot;&gt;#1148&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: accept plugins from cli (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1113&quot;&gt;#1113&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;New: Add no-extra-bind rule to flag unnecessary bind calls (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/982&quot;&gt;#982&lt;/a&gt;) (Bence Dányi)&lt;/li&gt;
&lt;li&gt;New: add no-void rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1017&quot;&gt;#1017&lt;/a&gt;). (Mike Sidorov)&lt;/li&gt;
&lt;li&gt;New: Add rules.import() (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1114&quot;&gt;#1114&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;New: Added rule disallowing reserved words being used as keys (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1144&quot;&gt;#1144&lt;/a&gt;) (Emil Bay)&lt;/li&gt;
&lt;li&gt;New: Adding ‘plugin’ CLI option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1112&quot;&gt;#1112&lt;/a&gt;) (Greg)&lt;/li&gt;
&lt;li&gt;New: Adds support for the &lt;code&gt;jasmine&lt;/code&gt; env (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1176&quot;&gt;#1176&lt;/a&gt;) (James Whitney)&lt;/li&gt;
&lt;li&gt;New: advanced handle-callback-err configuration (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1124&quot;&gt;#1124&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;New: Expose CLIEngine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1083&quot;&gt;#1083&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: Load plugins from configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1115&quot;&gt;#1115&lt;/a&gt;). (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;New: Make mergeConfigs() merge plugin entries (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1111&quot;&gt;#1111&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;New: space-in-parens rule (Closes &lt;a href=&quot;https://github.com/eslint/eslint/issues/627&quot;&gt;#627&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Add Date.UTC to allowed capitalized functions (David Brockman Smoliansky)&lt;/li&gt;
&lt;li&gt;Fix: Correct a typo in the error message in tests (Michał Gołębiowski)&lt;/li&gt;
&lt;li&gt;Fix: crash when loading empty eslintrc file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1164&quot;&gt;#1164&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: don’t break node offsets if hasbang present (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1078&quot;&gt;#1078&lt;/a&gt;) (Vitaly Puzrin)&lt;/li&gt;
&lt;li&gt;Fix: dot-notation rule flags non-keyword reserved words (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1102&quot;&gt;#1102&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: Error when there’s a &#92;r in .eslintrc (&lt;a href=&quot;https://github.com/eslint/eslint/issues/1172&quot;&gt;#1172&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Fix: for-in support to no-empty-label rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1161&quot;&gt;#1161&lt;/a&gt;) (Marc Harter)&lt;/li&gt;
&lt;li&gt;Fix: mergeConfigs ensures the plugins property exists (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1191&quot;&gt;#1191&lt;/a&gt;). (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: no-extra-strict behavior for named function expressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1209&quot;&gt;#1209&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: no-fallthrough: continue affects control flow, too (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1220&quot;&gt;#1220&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: no-unreachable should check top-level statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1138&quot;&gt;#1138&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: no-unused-expressions better directive detection (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1195&quot;&gt;#1195&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: no-unused-expressions directive support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1185&quot;&gt;#1185&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: no-unused-var should respect compound assignments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1166&quot;&gt;#1166&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: rewrite no-spaced-func rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1212&quot;&gt;#1212&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: rewrite no-unused-vars rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1212&quot;&gt;#1212&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: skip dot files and ignored dirs on traverse (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1077&quot;&gt;#1077&lt;/a&gt;, related to &lt;a href=&quot;https://github.com/eslint/eslint/issues/814&quot;&gt;#814&lt;/a&gt;) (Vitaly Puzrin)&lt;/li&gt;
&lt;li&gt;Fix: space-after-keywords checks finally of TryStatement (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1122&quot;&gt;#1122&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: space-after-keywords checks while of DoWhileStatement (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1120&quot;&gt;#1120&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: space-after-keywords w/ “never” should allow else-if (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1118&quot;&gt;#1118&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: Speed up getScope() (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1212&quot;&gt;#1212&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Speed up no-unreachable (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1135&quot;&gt;#1135&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Speed up tokens API (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1212&quot;&gt;#1212&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Perf-related revert “Fix: Speed up tokens API (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1212&quot;&gt;#1212&lt;/a&gt;)” (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Useless bind call in cli-engine (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1181&quot;&gt;#1181&lt;/a&gt;) (Bence Dányi)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Add ‘allowSingleLine’ option to brace-style (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1089&quot;&gt;#1089&lt;/a&gt;) (John Gozde)&lt;/li&gt;
&lt;li&gt;Update: Added comments support to .eslintignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1084&quot;&gt;#1084&lt;/a&gt;) (Vitaly Puzrin)&lt;/li&gt;
&lt;li&gt;Update: Declare ES6 collections (Map, Set, WeakMap, WeakSet) as built-in globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1189&quot;&gt;#1189&lt;/a&gt;) (Michał Gołębiowski)&lt;/li&gt;
&lt;li&gt;Update: enabled ‘no-trailing-spaces’ rule by default (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1051&quot;&gt;#1051&lt;/a&gt;) (Vitaly Puzrin)&lt;/li&gt;
&lt;li&gt;Update: ES3 &lt;code&gt;ReservedWord&lt;/code&gt;s (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1151&quot;&gt;#1151&lt;/a&gt;) Adds ES3 &lt;code&gt;ReservedWord&lt;/code&gt;s to the list of keywords in the &lt;code&gt;dot-notation&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1151&quot;&gt;#1151&lt;/a&gt;) (Emil Bay)&lt;/li&gt;
&lt;li&gt;Update: Update comment parser to read rule slashes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1116&quot;&gt;#1116&lt;/a&gt;) (Jary)&lt;/li&gt;
&lt;li&gt;Update: Use xml-escape instead of inline helper (Ref &lt;a href=&quot;https://github.com/eslint/eslint/issues/848&quot;&gt;#848&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add link to new Atom linter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1125&quot;&gt;#1125&lt;/a&gt;) (Gil Pedersen)&lt;/li&gt;
&lt;li&gt;Docs: Added Gruntjs plugin on integrations page (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;Docs: Change eol-last examples to &lt;pre&gt; (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1068&quot;&gt;#1068&lt;/a&gt;) (jrajav)&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Docs: document plugin usage (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1117&quot;&gt;#1117&lt;/a&gt;) (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Docs: fix some typos. (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Docs: Spell checking and one extra closing curly in code example (Juga Paazmaya)&lt;/li&gt;
&lt;li&gt;docs: Update link (Mathias Bynens)&lt;/li&gt;
&lt;li&gt;Docs: Updates &lt;code&gt;amd&lt;/code&gt; description (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1175&quot;&gt;#1175&lt;/a&gt;) (James Whitney)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build-Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Build: Exclude readme/index from rules Resources generation (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1072&quot;&gt;#1072&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.7.4 released</title>
    <link href="https://eslint.org/blog/2014/07/eslint-0.7.4-released/"/>
    <updated>2014-07-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/07/eslint-0.7.4-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Transform envs option to object in Config (Fixes #1064) (jrajav)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Fix ‘lintinging’ typo and ref links (Tom Vincent)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.7.3 released</title>
    <link href="https://eslint.org/blog/2014/07/eslint-0.7.3-released/"/>
    <updated>2014-07-09T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/07/eslint-0.7.3-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Address code review comment for strict rule (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/1011&quot;&gt;#1011&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Avoid double warnings for strict rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1011&quot;&gt;#1011&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Check envs for true/false (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1059&quot;&gt;#1059&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Update copyright policy (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update documentation for max-len to include description of second option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1006&quot;&gt;#1006&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.7.2 released</title>
    <link href="https://eslint.org/blog/2014/07/eslint-0.7.2-released/"/>
    <updated>2014-07-08T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/07/eslint-0.7.2-released/</id>
    <content type="html">&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: no-mixed-spaces-and-tabs incorrectly flagging multiline comments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1055&quot;&gt;#1055&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: new-cap error that throws on non-string member (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1053&quot;&gt;#1053&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Always make globals an object (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1049&quot;&gt;#1049&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.7.1 released</title>
    <link href="https://eslint.org/blog/2014/07/eslint-0.7.1-released/"/>
    <updated>2014-07-07T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/07/eslint-0.7.1-released/</id>
    <content type="html">&lt;p&gt;Due to npm’s security restrictions, we aren’t allowed to push a new 0.7.0 to the npm registry, which is why this version is 0.7.1.&lt;/p&gt;
&lt;h2 id=&quot;highlights&quot; tabindex=&quot;-1&quot;&gt;Highlights&lt;/h2&gt;
&lt;p&gt;This is a summary of the major changes you need to know about for this version of ESLint.&lt;/p&gt;
&lt;h3 id=&quot;.eslintignore-change&quot; tabindex=&quot;-1&quot;&gt;.eslintignore Change&lt;/h3&gt;
&lt;p&gt;As we announced previously, the JSON format for &lt;code&gt;.eslintignore&lt;/code&gt; files has been removed. Make sure to update your &lt;code&gt;.eslintignore&lt;/code&gt; files appropriately.&lt;/p&gt;
&lt;h3 id=&quot;configuration-changes&quot; tabindex=&quot;-1&quot;&gt;Configuration Changes&lt;/h3&gt;
&lt;p&gt;0.7.1 formalizes how configuration works when there are multiple &lt;code&gt;.eslintrc&lt;/code&gt; files. We have implemented configuration cascading, meaning that a &lt;code&gt;.eslintrc&lt;/code&gt; file automatically inherits the settings from the &lt;code&gt;.eslintrc&lt;/code&gt; file in its ancestor directories. This is how configuration was always envisioned to work in ESLint, but there were several bugs in the functionality. Because these bugs have been fixed, you may notice some different behavior with your current configuration settings. For more information on the configuration hierarchy, see the &lt;a href=&quot;https://eslint.org/docs/user-guide/configuring&quot;&gt;Configuration documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;no-yoda-is-now-yoda&quot; tabindex=&quot;-1&quot;&gt;no-yoda is now yoda&lt;/h3&gt;
&lt;p&gt;In an effort to embrace different coding preferences, we’ve changed the &lt;code&gt;no-yoda&lt;/code&gt; rule (which disallowed yoda conditions) to &lt;code&gt;[yoda](https://eslint.org/docs/rules/yoda)&lt;/code&gt;. This allows you to either enforce or disallow yoda conditions.&lt;/p&gt;
&lt;h3 id=&quot;cli-changes&quot; tabindex=&quot;-1&quot;&gt;CLI changes&lt;/h3&gt;
&lt;p&gt;The CLI has gone through an update, now allowing you to pass &lt;code&gt;--color&lt;/code&gt; and &lt;code&gt;--no-color&lt;/code&gt; to turn on or off color in the output. You can also use &lt;code&gt;-o&lt;/code&gt; to specify a file to output the results into rather than outputting to the console.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Implement configuration hierarchy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/963&quot;&gt;#963&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: CLIEngine abstraction for CLI operations; formatters no longer are passed configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/935&quot;&gt;#935&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Change ‘no-yoda’ rule to ‘yoda’ and add “always” option (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/959&quot;&gt;#959&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Breaking: Refactor .eslintignore functionality (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/928&quot;&gt;#928&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/901&quot;&gt;#901&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/837&quot;&gt;#837&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/853&quot;&gt;#853&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove JSON support for .eslintignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/883&quot;&gt;#883&lt;/a&gt;) (icebox)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;features&quot; tabindex=&quot;-1&quot;&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;New: Add getSourceLines() to core and rule context (fixed &lt;a href=&quot;https://github.com/eslint/eslint/issues/1005&quot;&gt;#1005&lt;/a&gt;) (Jary)&lt;/li&gt;
&lt;li&gt;New: report output to a file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1027&quot;&gt;#1027&lt;/a&gt;) (Gyandeep Singh)&lt;/li&gt;
&lt;li&gt;New: add &lt;a href=&quot;https://eslint.org/docs/rules/no-undefined&quot;&gt;no-undefined&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1020&quot;&gt;#1020&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;New: Added &lt;a href=&quot;https://eslint.org/docs/rules/no-mixed-spaces-and-tabs&quot;&gt;no-mixed-spaces-and-tabs&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1003&quot;&gt;#1003&lt;/a&gt;) (Jary)&lt;/li&gt;
&lt;li&gt;New: Added &lt;a href=&quot;https://eslint.org/docs/rules/no-trailing-spaces&quot;&gt;no-trailing-spaces&lt;/a&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/995&quot;&gt;#995&lt;/a&gt;) (Vitaly Puzrin)&lt;/li&gt;
&lt;li&gt;New: Added &lt;a href=&quot;https://eslint.org/docs/rules/eol-last&quot;&gt;eol-last&lt;/a&gt; rule (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/996&quot;&gt;#996&lt;/a&gt;) (Vitaly Puzrin)&lt;/li&gt;
&lt;li&gt;New: Allow the cli parameter “color” and “no-color” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/954&quot;&gt;#954&lt;/a&gt;) (Tom Gallacher)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;bug-fixes&quot; tabindex=&quot;-1&quot;&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Check output file isn’t dir, fix tests (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1034&quot;&gt;#1034&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Fix: Ignore unused params for args: ‘none’ (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1026&quot;&gt;#1026&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Fix: Point eqeqeq error at operator (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1029&quot;&gt;#1029&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Fix: Allow stdout to drain before exiting (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/317&quot;&gt;#317&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: rewrite eol-last rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1007&quot;&gt;#1007&lt;/a&gt;) (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1008&quot;&gt;#1008&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: add additional IIFE exception in no-extra-parens (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1004&quot;&gt;#1004&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: Put rule severity in messages (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/984&quot;&gt;#984&lt;/a&gt;); deprecates passing full config to Formatters (jrajav)&lt;/li&gt;
&lt;li&gt;Fix: no-unused-vars to check only file globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/975&quot;&gt;#975&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Fix: Fixes no-unused-vars to check /&lt;em&gt;globals&lt;/em&gt;/ (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/955&quot;&gt;#955&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Fix: valid-jsdoc no more warning for multi-level params (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/925&quot;&gt;#925&lt;/a&gt;) (Delapouite)&lt;/li&gt;
&lt;li&gt;Fix: Correct order of arguments passed to assert.equal (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/945&quot;&gt;#945&lt;/a&gt;) (Michał Gołębiowski)&lt;/li&gt;
&lt;li&gt;Fix: Corrects configs merging into base config (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/838&quot;&gt;#838&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Fix: Adding check if char is non-alphabetic to new-cap (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/940&quot;&gt;#940&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;enhancements&quot; tabindex=&quot;-1&quot;&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Update: Factor ignores out of Config (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/958&quot;&gt;#958&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Update: greatly simplify eqeqeq’s operator finding logic (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1037&quot;&gt;#1037&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Update: no-eval to also warn on setTimeout and setInterval (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/721&quot;&gt;#721&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Rule &lt;code&gt;new-cap&lt;/code&gt; checks capitalized functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/904&quot;&gt;#904&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Update: Search parent directories for .eslintignore (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/933&quot;&gt;#933&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Update: space-in-brackets now always allows empty object and array literals to have no spaces (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/797&quot;&gt;#797&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Write the summary in stylish formatter in yellow if no errors (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/906&quot;&gt;#906&lt;/a&gt;); test coloring of messages (Michał Gołębiowski)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Docs: Add ‘/’, forgotten in first commit (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/931&quot;&gt;#931&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Docs: Add Related Rules sections (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/990&quot;&gt;#990&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Docs: guard-for-in - added missing id in title (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/969&quot;&gt;#969&lt;/a&gt;) (Delapouite)&lt;/li&gt;
&lt;li&gt;Docs: Mention allowed semicolons in “never” mode for ‘semi’ rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/931&quot;&gt;#931&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Docs: Mention Yeoman generator in dev setup (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/914&quot;&gt;#914&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Removed reference to brace-style Stroustrup default (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1000&quot;&gt;#1000&lt;/a&gt;) (Caleb Troughton)&lt;/li&gt;
&lt;li&gt;Docs: Update about page description (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/936&quot;&gt;#936&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Updated contributor guide and dev env setup guide (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Updated documentation for several rules (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build-related&quot; tabindex=&quot;-1&quot;&gt;Build-Related&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Breaking: Change ‘no-yoda’ rule to ‘yoda’ and add “always” option (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/959&quot;&gt;#959&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Breaking: CLIEngine abstraction for CLI operations; formatters no longer are passed configs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/935&quot;&gt;#935&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Implement configuration hierarchy (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/963&quot;&gt;#963&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Refactor .eslintignore functionality (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/928&quot;&gt;#928&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/901&quot;&gt;#901&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/837&quot;&gt;#837&lt;/a&gt;, fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/853&quot;&gt;#853&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: Remove JSON support for .eslintignore (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/883&quot;&gt;#883&lt;/a&gt;) (icebox)&lt;/li&gt;
&lt;li&gt;Build + Docs: Adding generated resource links to rule docs (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/1021&quot;&gt;#1021&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Build: Makefile - Check for rule ids in docs titles (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/969&quot;&gt;#969&lt;/a&gt;) (Delapouite)&lt;/li&gt;
&lt;li&gt;Build: Remove flaky perf test from Travis (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Formatter Breaking Change</title>
    <link href="https://eslint.org/blog/2014/06/formatter-breaking-change/"/>
    <updated>2014-06-21T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/06/formatter-breaking-change/</id>
    <content type="html">&lt;h2 id=&quot;what%E2%80%99s-changing&quot; tabindex=&quot;-1&quot;&gt;What’s Changing&lt;/h2&gt;
&lt;p&gt;Up until this point, formatters were passed a &lt;code&gt;config&lt;/code&gt; object that contained the calculated severity for each rule (error or warning) so that this information could be output. With 0.7.1, the severity will now be represented on each message itself as a &lt;code&gt;severity&lt;/code&gt; property. All of the built-in formatters have been updated to reflect this change.&lt;/p&gt;
&lt;h2 id=&quot;why-change%3F&quot; tabindex=&quot;-1&quot;&gt;Why Change?&lt;/h2&gt;
&lt;p&gt;There were several bugs related to rules being output with the incorrect severity. The most recent was &lt;a href=&quot;https://github.com/eslint/eslint/issues/983&quot;&gt;#983&lt;/a&gt;, which led to the discovery that the config object being passed around didn’t take into account inline rule severity changes. &lt;a href=&quot;https://github.com/eslint/eslint/pull/985&quot;&gt;#985&lt;/a&gt; implemented a change that placed the severity of the message directly onto the message object, meaning the config object was no longer necessary.&lt;/p&gt;
&lt;p&gt;The original plan was to deprecate the usage of the config object in formatters for 0.7.1 and remove it in 0.8.0. However, a major refactoring (&lt;a href=&quot;https://github.com/eslint/eslint/pull/1013&quot;&gt;#1013&lt;/a&gt;) led to a separation of responsibilities that made keeping this functionality as-is extremely difficult.&lt;/p&gt;
&lt;h2 id=&quot;what-you-have-to-do&quot; tabindex=&quot;-1&quot;&gt;What You Have To Do&lt;/h2&gt;
&lt;p&gt;If you have written a custom formatter for ESLint, then you’ll need to change it to reflect this change. Previously, you may have been calculating severity like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; severity &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; config&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rules&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;message&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ruleId&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; config&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rules&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;message&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ruleId&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To work with 0.7.1, you’ll have to use the &lt;code&gt;severity&lt;/code&gt; on the message itself:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; severity &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; message&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;severity&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you want your formatter to work with both old and new versions of ESLint, then you’ll need to combine these ways of calculating severity, such as:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; severity &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;severity&quot;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; message &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; message&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;severity &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;config&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rules&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;message&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ruleId&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; config&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rules&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;message&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ruleId&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;known-affected-modules&quot; tabindex=&quot;-1&quot;&gt;Known Affected Modules&lt;/h2&gt;
&lt;p&gt;The following is a list of modules available on &lt;a href=&quot;https://npmjs.org/&quot;&gt;npm&lt;/a&gt; that are affected by this change:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.npmjs.org/package/eslint-stylish&quot;&gt;eslint-stylish&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.npmjs.org/package/eslint-json&quot;&gt;eslint-json&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.npmjs.org/package/eslint-tap&quot;&gt;eslint-tap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.npmjs.org/package/eslint-path-formatter&quot;&gt;eslint-path-reporter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that this list is not exhaustive. You should check any non-bundled ESLint formatters you may be using for compatibility.&lt;/p&gt;
&lt;h2 id=&quot;questions%3F&quot; tabindex=&quot;-1&quot;&gt;Questions?&lt;/h2&gt;
&lt;p&gt;If you have further questions about this change, Open a &lt;a href=&quot;https://github.com/eslint/eslint/discussions&quot;&gt;discussion&lt;/a&gt; or stop by our &lt;a href=&quot;https://eslint.org/chat&quot;&gt;Discord server&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.6.2 released</title>
    <link href="https://eslint.org/blog/2014/05/eslint-0.6.2-released/"/>
    <updated>2014-05-23T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/05/eslint-0.6.2-released/</id>
    <content type="html">&lt;h2 id=&quot;deprecation-notices&quot; tabindex=&quot;-1&quot;&gt;Deprecation Notices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reminder:&lt;/strong&gt; The 0.6.x ESLint will be the last to support the deprecated JSON format for &lt;code&gt;.eslintignore&lt;/code&gt;. This was deprecated in 0.5.1 and will be removed in 0.7.0. Please change your &lt;code&gt;.eslintignore&lt;/code&gt; files to the new plain-text format. See &lt;a href=&quot;https://github.com/eslint/eslint/issues/761&quot;&gt;#761&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Adding per-environment rule configs to docs and doc validation (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/918&quot;&gt;#918&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Docs: Updated contribution guidelines (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update description of eqeqeq to mention special cases (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/924&quot;&gt;#924&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: block-scoped-var CatchClause handling (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/922&quot;&gt;#922&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: block-scoped-var respects decls in for and for-in (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/919&quot;&gt;#919&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Update: Implement eqeqeq option “allow-null” (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/910&quot;&gt;#910&lt;/a&gt;) (Michał Gołębiowski)&lt;/li&gt;
&lt;li&gt;Fix: new-cap should allow non-alpha characters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/897&quot;&gt;#897&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Update: Refactor ESLintTester to fix dependency hell (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/602&quot;&gt;#602&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Merge configs with ancestors (Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/820&quot;&gt;#820&lt;/a&gt;) (jrajav)&lt;/li&gt;
&lt;li&gt;Fix: no-fallthrough should respect block statements in case statements (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/893&quot;&gt;#893&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Fix layout issue in configuration docs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/889&quot;&gt;#889&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Build: Enable default-case rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/881&quot;&gt;#881&lt;/a&gt;) (icebox)&lt;/li&gt;
&lt;li&gt;Build: Enable space-after-keywords (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/884&quot;&gt;#884&lt;/a&gt;) (icebox)&lt;/li&gt;
&lt;li&gt;Fix: api double emit on comment nodes (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/876&quot;&gt;#876&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.6.1 released</title>
    <link href="https://eslint.org/blog/2014/05/eslint-0.6.1-released/"/>
    <updated>2014-05-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/05/eslint-0.6.1-released/</id>
    <content type="html">&lt;h2 id=&quot;deprecation-notices&quot; tabindex=&quot;-1&quot;&gt;Deprecation Notices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reminder:&lt;/strong&gt; The 0.6.x ESLint will be the last to support the deprecated JSON format for &lt;code&gt;.eslintignore&lt;/code&gt;. This was deprecated in 0.5.1 and will be removed in 0.7.0. Please change your &lt;code&gt;.eslintignore&lt;/code&gt; files to the new plain-text format. See &lt;a href=&quot;https://github.com/eslint/eslint/issues/761&quot;&gt;#761&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;upgrades&quot; tabindex=&quot;-1&quot;&gt;Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Optionator to 0.4.0 (&lt;a href=&quot;https://github.com/eslint/eslint/issues/885&quot;&gt;#885&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade: Optionator to 0.4.0 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/885&quot;&gt;#885&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.6.0 released</title>
    <link href="https://eslint.org/blog/2014/05/eslint-0.6.0-released/"/>
    <updated>2014-05-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/05/eslint-0.6.0-released/</id>
    <content type="html">&lt;h2 id=&quot;deprecation-notices&quot; tabindex=&quot;-1&quot;&gt;Deprecation Notices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The 0.6.x ESLint will be the last to support the deprecated JSON format for &lt;code&gt;.eslintignore&lt;/code&gt;. This was deprecated in 0.5.1 and will be removed in 0.7.0. Please change your &lt;code&gt;.eslintignore&lt;/code&gt; files to the new plain-text format. See &lt;a href=&quot;https://github.com/eslint/eslint/issues/761&quot;&gt;#761&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt; now disallows block statements where curlies are on the same line. While not strictly a breaking change, it is a significant enough change to warrant being called out in this way. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/758&quot;&gt;#758&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Node 0.8.x is no longer officially supported as of 0.6.0. We will no longer accept or fix bugs for Node 0.8.x.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;rules&quot; tabindex=&quot;-1&quot;&gt;Rules&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Breaking:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt; now disallows block statements where curlies are on the same line. While not strictly a breaking change, it is a significant enough change to warrant being called out in this way. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/758&quot;&gt;#758&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/default-case&quot;&gt;default-case&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/787&quot;&gt;#787&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/no-new-require&quot;&gt;no-new-require&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/847&quot;&gt;#847&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/space-after-keywords&quot;&gt;space-after-keywords&lt;/a&gt;  (&lt;a href=&quot;https://github.com/eslint/eslint/issues/807&quot;&gt;#807&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/no-lonely-if&quot;&gt;no-lonely-if&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/790&quot;&gt;#790&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/no-restricted-modules&quot;&gt;no-restricted-modules&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/791&quot;&gt;#791&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/no-inner-declarations&quot;&gt;no-inner-declarations&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/587&quot;&gt;#587&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update:&lt;/strong&gt; The default value for the &lt;code&gt;vars&lt;/code&gt; option of &lt;a href=&quot;https://eslint.org/docs/rules/no-unused-vars&quot;&gt;no-unused-vars&lt;/a&gt; was changed to “all”. This addresses the issue where some were unexpectedly seeing unused global variables missed. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/760&quot;&gt;#760&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/valid-jsdoc&quot;&gt;valid-jsdoc&lt;/a&gt; now allows you to optionally turn off parameter description checks (&lt;a href=&quot;https://github.com/eslint/eslint/issues/822&quot;&gt;#822&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/no-extra-parens&quot;&gt;no-extra-parens&lt;/a&gt; now doesn’t flag IIFEs (&lt;a href=&quot;https://github.com/eslint/eslint/issues/655&quot;&gt;#655&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fix:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;semi&lt;/a&gt; rule was incorrectly flagging extra semicolon (&lt;a href=&quot;https://github.com/eslint/eslint/issues/840&quot;&gt;#840&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update:&lt;/strong&gt; Add “nofunc” option to &lt;a href=&quot;https://eslint.org/docs/rules/no-use-before-define&quot;&gt;no-use-before-define&lt;/a&gt; (&lt;a href=&quot;https://github.com/eslint/eslint/issues/829&quot;&gt;#829&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fix:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/rules/block-scoped-var&quot;&gt;block-scoped-var&lt;/a&gt; correct scope for functions, arguments (&lt;a href=&quot;https://github.com/eslint/eslint/issues/832&quot;&gt;#832&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;configuration&quot; tabindex=&quot;-1&quot;&gt;Configuration&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Update:&lt;/strong&gt; You can now use comments to enable/disable rules around certain portions of a file (&lt;a href=&quot;https://github.com/eslint/eslint/issues/305&quot;&gt;#305&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;cli&quot; tabindex=&quot;-1&quot;&gt;CLI&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Update:&lt;/strong&gt; Added &lt;code&gt;--rule&lt;/code&gt; flag to specify rules on the &lt;a href=&quot;https://eslint.org/docs/user-guide/command-line-interface&quot;&gt;command line&lt;/a&gt;. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/692&quot;&gt;#692&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update:&lt;/strong&gt; Added &lt;code&gt;--force&lt;/code&gt; to force ESLint to lint ignored files. Also, you’ll now get a warning when ESLint is ignoring files that are explicitly passed on the command line.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/developer-guide/contributing&quot;&gt;Contribution Guidelines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;a href=&quot;https://eslint.org/docs/developer-guide/development-environment&quot;&gt;Development Environment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;build&quot; tabindex=&quot;-1&quot;&gt;Build&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add linting of Makefile.js. (&lt;a href=&quot;https://github.com/eslint/eslint/issues/870&quot;&gt;#870&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Add check so that documentation reflects the correct on/off default for each rule (&lt;a href=&quot;https://github.com/eslint/eslint/issues/865&quot;&gt;#865&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;upgrades&quot; tabindex=&quot;-1&quot;&gt;Upgrades&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Esprima to 1.2 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/842&quot;&gt;#842&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Remove -r alias for --rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/882&quot;&gt;#882&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update dev setup, contributing, default-case descriptions (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: valid-jsdoc now allows you to optionally turn off parameter description checks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/822&quot;&gt;#822&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Breaking: brace-style now disallows block statements where curlies are on the same line (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/758&quot;&gt;#758&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add linting Makefile.js (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/870&quot;&gt;#870&lt;/a&gt;) (icebox)&lt;/li&gt;
&lt;li&gt;add rule flag, closes &lt;a href=&quot;https://github.com/eslint/eslint/issues/692&quot;&gt;#692&lt;/a&gt; (George Zahariev)&lt;/li&gt;
&lt;li&gt;Add check between rules doc and index (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/865&quot;&gt;#865&lt;/a&gt;) (icebox)&lt;/li&gt;
&lt;li&gt;Add Build Next mention in integrations README. (icebox)&lt;/li&gt;
&lt;li&gt;document new IIFE exception for no-extra parens added as part of &lt;a href=&quot;https://github.com/eslint/eslint/issues/655&quot;&gt;#655&lt;/a&gt; (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;(fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/622&quot;&gt;#622&lt;/a&gt;) Add rule ID on documentation pages (Delapouite)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/655&quot;&gt;#655&lt;/a&gt;: add IIFE exception to no-extra-parens (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;add new rule “no-new-require” (Wil Moore III)&lt;/li&gt;
&lt;li&gt;exit with non-zero status when tests fail (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/858&quot;&gt;#858&lt;/a&gt;) (Márton Salomváry)&lt;/li&gt;
&lt;li&gt;removed unicode zero width space character from messages (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/857&quot;&gt;#857&lt;/a&gt;) (Márton Salomváry)&lt;/li&gt;
&lt;li&gt;Change: --rulesdir now can be specified multiple times (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/830&quot;&gt;#830&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Node 0.8 no longer supported (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/734&quot;&gt;#734&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Add typed arrays into builtin environment globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/846&quot;&gt;#846&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Add prototype methods to global scope (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/700&quot;&gt;#700&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Rule: no-restricted-modules (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/791&quot;&gt;#791&lt;/a&gt;) (Christian)&lt;/li&gt;
&lt;li&gt;Upgrade: Esprima to 1.2 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/842&quot;&gt;#842&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: reporting level 2 is an error (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/843&quot;&gt;#843&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Upgrade: Esprima to 1.2, switch to using Esprima comment attachment (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/730&quot;&gt;#730&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Semi rule incorrectly flagging extra semicolon (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/840&quot;&gt;#840&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Build: Update Travis to only test Node 0.10 (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/734&quot;&gt;#734&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add “nofunc” option (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/829&quot;&gt;#829&lt;/a&gt;) (Conrad Zimmerman)&lt;/li&gt;
&lt;li&gt;Rule: no-inner-declarations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/587&quot;&gt;#587&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Rule ‘block-scoped-var’: correct scope for functions, arguments (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/832&quot;&gt;#832&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Rule: default-case (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/787&quot;&gt;#787&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Ignored files are excluded unless --force is passed on the CLI (Nick Fisher)&lt;/li&gt;
&lt;li&gt;Fixes a typo and a broken link in the documentation (Nick Fisher)&lt;/li&gt;
&lt;li&gt;Replaces .some() with .indexOf() where appropriate (Nick Fisher)&lt;/li&gt;
&lt;li&gt;Fix correct config merge for array values (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/819&quot;&gt;#819&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Remove warning about ESLint being in Alpha (Nick Fisher)&lt;/li&gt;
&lt;li&gt;Adds &lt;code&gt;space-after-keywords&lt;/code&gt; rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/807&quot;&gt;#807&lt;/a&gt;) (Nick Fisher)&lt;/li&gt;
&lt;li&gt;Rule: no-lonely-if (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/790&quot;&gt;#790&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Add ignore comments in file (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/305&quot;&gt;#305&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Change: no-unused-vars default to ‘all’ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/760&quot;&gt;#760&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.5.1 released</title>
    <link href="https://eslint.org/blog/2014/04/eslint-0.5.1-released/"/>
    <updated>2014-04-17T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/04/eslint-0.5.1-released/</id>
    <content type="html">&lt;h2 id=&quot;deprecation-notices&quot; tabindex=&quot;-1&quot;&gt;Deprecation Notices&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;With this release, we are deprecating the JSON format for &lt;code&gt;.eslintignore&lt;/code&gt; in favor of a plain-text format. The change was made in a backwards-compatible way, but JSON support will be removed in the future, so you should start converting your &lt;code&gt;.eslintignore&lt;/code&gt;. See &lt;a href=&quot;https://github.com/eslint/eslint/issues/761&quot;&gt;#761&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix general config not to be modified by comment config in files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/806&quot;&gt;#806&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Docs: SVG badges (Ryuichi Okumura)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/804&quot;&gt;#804&lt;/a&gt;: clean up implementation of &lt;a href=&quot;https://github.com/eslint/eslint/issues/803&quot;&gt;#803&lt;/a&gt; (which fixed &lt;a href=&quot;https://github.com/eslint/eslint/issues/781&quot;&gt;#781&lt;/a&gt;) (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Build: Fix perf test to take median of three runs (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/781&quot;&gt;#781&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: --reset will now properly ignore default rules in environments.json (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/800&quot;&gt;#800&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Updated contributor guidelines (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Added Mocha global variables for TDD style. Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/793&quot;&gt;#793&lt;/a&gt;. (Golo Roden)&lt;/li&gt;
&lt;li&gt;Rule: no-sequences (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/561&quot;&gt;#561&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Change .eslintingore to plain text (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/761&quot;&gt;#761&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Change ‘no-spaced-func’ message (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/762&quot;&gt;#762&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Rule ‘block-scoped-var’ works correct when object inits (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/783&quot;&gt;#783&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Build: Always build docs site on top of origin/master (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.5.0 released</title>
    <link href="https://eslint.org/blog/2014/04/eslint-0.5.0-released/"/>
    <updated>2014-04-10T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/04/eslint-0.5.0-released/</id>
    <content type="html">&lt;p&gt;Special thanks to Brandon Mills and George Zahariev for their working on making the CLI even more awesome, and Michael Ficarra for his help and advice on improving runtime performance.&lt;/p&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;In previous versions, ESLint would read &lt;code&gt;/*jshint node:true*/&lt;/code&gt; and &lt;code&gt;/*jslint node:true*/&lt;/code&gt; to set the environment in files. This feature was undocumented and has been replaced with &lt;code&gt;/*eslint-env node */&lt;/code&gt; to set the environment in files. See &lt;a href=&quot;https://github.com/eslint/eslint/issues/759&quot;&gt;#759&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The 0.4.x releases of ESLint had a licensing issue with a dependency of Optionator that was had no license applied to it, making ESLint’s license picture a bit muddy. We upgraded to the latest version of Optionator, in which the offending module has been removed, returning ESLint’s license to pristine shape. Even though functionality did not change due to this, the license story for ESLint did, and so we consider it a breaking change.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;new-rules&quot; tabindex=&quot;-1&quot;&gt;New Rules&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rule: &lt;a href=&quot;https://eslint.org/docs/rules/valid-typeof&quot;&gt;valid-typeof&lt;/a&gt; by Ian Christian Myers&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;rule-changes&quot; tabindex=&quot;-1&quot;&gt;Rule Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix: Make sure no-path-concat doesn’t flag non-concat operations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/776&quot;&gt;#776&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Rule ‘no-unused-var’ in functional expression with identifier (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/775&quot;&gt;#775&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Add options for rule ‘no-unused-vars’ to check all arguments in functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/728&quot;&gt;#728&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Rule block-scoped-var works correct with object properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/755&quot;&gt;#755&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/740&quot;&gt;#740&lt;/a&gt; - Make sure callbacks exist before marking them as ‘handled’. (mstuart)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/743&quot;&gt;#743&lt;/a&gt;: wrap-regex rule warns on regex used in dynamic member access (Michael Ficarra)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;cli-changes&quot; tabindex=&quot;-1&quot;&gt;CLI Changes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;--global&lt;/code&gt; cli flag (ref &lt;a href=&quot;https://github.com/eslint/eslint/issues/692&quot;&gt;#692&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;--env&lt;/code&gt; cli flag (ref &lt;a href=&quot;https://github.com/eslint/eslint/issues/692&quot;&gt;#692&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Build: Bump perf limit so Travis won’t fail every time (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/780&quot;&gt;#780&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add tests to cover 100% of eslint.js (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Fix: Make sure no-path-concat doesn’t flag non-concat operations (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/776&quot;&gt;#776&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Rule ‘no-unused-var’ in functional expression with identifier (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/775&quot;&gt;#775&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Rule: valid-typeof (Ian Christian Myers)&lt;/li&gt;
&lt;li&gt;Add global cli flag (ref &lt;a href=&quot;https://github.com/eslint/eslint/issues/692&quot;&gt;#692&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;update to latest Optionator (George Zahariev)&lt;/li&gt;
&lt;li&gt;Add options for rule ‘no-unused-vars’ to check all arguments in functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/728&quot;&gt;#728&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Fix: Cleanup package.json (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New: Experimental support for CSS Auron (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/765&quot;&gt;#765&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Lint tests on build (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/764&quot;&gt;#764&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Rule block-scoped-var works correct with object properties (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/755&quot;&gt;#755&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Breaking: implement eslint-env and remove jshint/jslint environment comment support (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/759&quot;&gt;#759&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;readme: npm i -&amp;gt; npm install (Linus Unnebäck)&lt;/li&gt;
&lt;li&gt;Add env flag to cli options summary (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/752&quot;&gt;#752&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix: Give the perf test a better calculated budget (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/749&quot;&gt;#749&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;give the &lt;code&gt;env&lt;/code&gt; flag type &lt;code&gt;[String]&lt;/code&gt;, improve code (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/748&quot;&gt;#748&lt;/a&gt;) (George Zahariev)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/735&quot;&gt;#735&lt;/a&gt;: add new, more efficient getTokens interfaces (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Add --env cli flag (ref &lt;a href=&quot;https://github.com/eslint/eslint/issues/692&quot;&gt;#692&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/740&quot;&gt;#740&lt;/a&gt; - Make sure callbacks exist before marking them as ‘handled’. (mstuart)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/743&quot;&gt;#743&lt;/a&gt;: wrap-regex rule warns on regex used in dynamic member access (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;replace tab indents with 4 spaces in lib/rules/handle-callback-err.js (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Adding homepage and bugs links to package.json (Peter deHaan)&lt;/li&gt;
&lt;li&gt;JSDoc for rules (Anton Rudeshko)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.4.5 released</title>
    <link href="https://eslint.org/blog/2014/03/eslint-0.4.5-released/"/>
    <updated>2014-03-29T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/03/eslint-0.4.5-released/</id>
    <content type="html">&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;p&gt;There are no breaking changes in this release.&lt;/p&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Build: Add perf check into Travis build to better monitor performance regressions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/732&quot;&gt;#732&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Make sure &lt;a href=&quot;https://eslint.org/docs/rules/semi&quot;&gt;semi&lt;/a&gt; reports correct location of missing semicolon (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/726&quot;&gt;#726&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add --no-eslintrc cli flag (ref &lt;a href=&quot;https://github.com/eslint/eslint/issues/717&quot;&gt;#717&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Fix &lt;a href=&quot;https://github.com/eslint/eslint/issues/716&quot;&gt;#716&lt;/a&gt; crash with reset flag (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Docs: Fixed JSON formatting and highlighting (Anton Rudeshko (Tesla))&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/723&quot;&gt;#723&lt;/a&gt;: &lt;a href=&quot;https://eslint.org/docs/rules/block-scoped-var&quot;&gt;block-scoped-var&lt;/a&gt; throws on unnamed function expression (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: Make stroustrup &lt;a href=&quot;https://eslint.org/docs/rules/brace-style&quot;&gt;brace-style&lt;/a&gt; closing message make sense (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/719&quot;&gt;#719&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: &lt;a href=&quot;https://eslint.org/docs/rules/no-comma-dangle&quot;&gt;no-comma-dangle&lt;/a&gt; reports correct line number (Andrey Popp)&lt;/li&gt;
&lt;li&gt;Upgrade: Esprima to 1.1.1 and EScope to 1.0.1 (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/718&quot;&gt;#718&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;CLI: Add reset cli flag (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/692&quot;&gt;#692&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Relax &lt;a href=&quot;https://eslint.org/docs/rules/eqeqeq&quot;&gt;eqeqeq&lt;/a&gt; null check (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/669&quot;&gt;#669&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;New Rule: &lt;a href=&quot;https://eslint.org/docs/rules/handle-callback-err&quot;&gt;handle-callback-err&lt;/a&gt; (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/567&quot;&gt;#567&lt;/a&gt;) (Jamund Ferguson)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.4.4 released</title>
    <link href="https://eslint.org/blog/2014/03/eslint-0.4.4-released/"/>
    <updated>2014-03-25T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/03/eslint-0.4.4-released/</id>
    <content type="html">&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;p&gt;There are no breaking changes in this release.&lt;/p&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix no-used-vars to report FunctionExpression params (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/697&quot;&gt;#697&lt;/a&gt;). (Andrey Popp)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/711&quot;&gt;#711&lt;/a&gt;: eslint reports wrong line number for files with shebang (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix for no-unused-vars and MemberExpression (Andrey Popp)&lt;/li&gt;
&lt;li&gt;added no-warning-comments rule (Alexander Schmidt)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/699&quot;&gt;#699&lt;/a&gt;: brace-style does not check function expressions (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;rewrite block-scoped-var (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;recommend using hasOwnProperty from Object.prototype in guard-for-in docs (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;change conf/environments.json spacing to be simpler and more consistent (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Update API to use context.getFilename() instead of .filename. (Loren Segal)&lt;/li&gt;
&lt;li&gt;Small changes, JSDoc is clarified (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Move FileFinder to separate file (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Cache if file is not found (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Use cache on config files seach (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Added .eslintignore to load from parents folders (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/681&quot;&gt;#681&lt;/a&gt;) (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;fix ‘node-modules’ typo in docs (Fred K. Schott)&lt;/li&gt;
&lt;li&gt;Upgrade to the latest version of doctrine. (Brian Di Palma)&lt;/li&gt;
&lt;li&gt;Document optional filename and default it to ‘&amp;lt;input&amp;gt;’. (Loren Segal)&lt;/li&gt;
&lt;li&gt;Fix: Compatibility for Node 0.8 (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: Makefile.js now uses shelljs-nodecli (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/681&quot;&gt;#681&lt;/a&gt; apply all .eslintignore exclusions (Aliaksei Shytkin)&lt;/li&gt;
&lt;li&gt;Add RuleContext.filename property (for &lt;a href=&quot;https://github.com/eslint/eslint/issues/468&quot;&gt;#468&lt;/a&gt;). (Loren Segal)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.4.3 released</title>
    <link href="https://eslint.org/blog/2014/03/eslint-0.4.3-released/"/>
    <updated>2014-03-18T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/03/eslint-0.4.3-released/</id>
    <content type="html">&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;p&gt;There are no breaking changes in this release.&lt;/p&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/682&quot;&gt;#682&lt;/a&gt;: rewrite no-constant-condition rule (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/673&quot;&gt;#673&lt;/a&gt; allow configuration of @return errors via requireReturn - (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/673&quot;&gt;#673&lt;/a&gt;) (Brian Di Palma)&lt;/li&gt;
&lt;li&gt;Tweaking inline code formatting for “if, while, dowhile” (Peter deHaan)&lt;/li&gt;
&lt;li&gt;Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/677&quot;&gt;#677&lt;/a&gt; getJSDocComment() should not search beyond FunctionExpression or FunctionDeclaration parent nodes. (Brian Di Palma)&lt;/li&gt;
&lt;li&gt;Relaxed enforcement of camelcase rule (Ian Christian Myers)&lt;/li&gt;
&lt;li&gt;Fixing issue &lt;a href=&quot;https://github.com/eslint/eslint/issues/675&quot;&gt;#675&lt;/a&gt;. Incorrect triggering of no-else-return rule. (Brian Di Palma)&lt;/li&gt;
&lt;li&gt;Added style option for wrap-iife (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Fix: Issues with named function expressions in no-unused-vars and no-shadow (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/662&quot;&gt;#662&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: camelcase rule now doesn’t flag function calls (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/656&quot;&gt;#656&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Updating documentation description for: no-space-before-semi rule, changing rules to exempt strings with semicolons and test for that condition. Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/629&quot;&gt;#629&lt;/a&gt;. (Jonathan Kingston)&lt;/li&gt;
&lt;li&gt;Adding in rule no-space-before-semi to prevent spaces before semicolons. fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/629&quot;&gt;#629&lt;/a&gt; (Jonathan Kingston)&lt;/li&gt;
&lt;li&gt;show NPM version (Paul Verest)&lt;/li&gt;
&lt;li&gt;adapt code formatting (Mathias Schreck)&lt;/li&gt;
&lt;li&gt;Added a TextMate 2 integration to the docs (Nate Silva)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.4.2 released</title>
    <link href="https://eslint.org/blog/2014/03/eslint-0.4.2-released/"/>
    <updated>2014-03-03T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/03/eslint-0.4.2-released/</id>
    <content type="html">&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;p&gt;There are no breaking changes in this release.&lt;/p&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/#651&quot;&gt;#651&lt;/a&gt;: disable no-catch-shadow rule in node environment (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fixed context.report message parsing (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/#650&quot;&gt;#650&lt;/a&gt;) (Ian Christian Myers)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/#648&quot;&gt;#648&lt;/a&gt;: wrap-iife rule should actually check that IIFEs are wrapped (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Added “stroustrup” option for brace-style (Ian Christian Myers)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.4.0 released</title>
    <link href="https://eslint.org/blog/2014/02/eslint-0.4.0-released/"/>
    <updated>2014-02-12T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/02/eslint-0.4.0-released/</id>
    <content type="html">&lt;h2 id=&quot;configuration-files&quot; tabindex=&quot;-1&quot;&gt;Configuration Files&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Configuration files can now be written in YAML. This includes &lt;code&gt;.eslintrc&lt;/code&gt; files.&lt;/li&gt;
&lt;li&gt;All configuration files can be in either JSON or YAML format, no special indicator of the format is necessary&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;core&quot; tabindex=&quot;-1&quot;&gt;Core&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Breaking Change:&lt;/strong&gt; Changed &lt;code&gt;:after&lt;/code&gt; in node selectors to be &lt;code&gt;:exit&lt;/code&gt; instead&lt;/li&gt;
&lt;li&gt;Switch to using optionator instead of optimist for CLI input&lt;/li&gt;
&lt;li&gt;Split out ESLintTester into its own repository (&lt;a href=&quot;https://github.com/eslint/eslint-tester&quot;&gt;https://github.com/eslint/eslint-tester&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;CLI used to output a single blank line when there were no errors, now it doesn’t output anything in this case&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;performance&quot; tabindex=&quot;-1&quot;&gt;Performance&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Implementing benchmarks to help identify performance bottlenecks&lt;/li&gt;
&lt;li&gt;Refactoring allowed a 400-700ms improvement on our benchmarks&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;rules&quot; tabindex=&quot;-1&quot;&gt;Rules&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Breaking Change:&lt;/strong&gt; &lt;code&gt;unnecessary-strict&lt;/code&gt; rule was renamed to &lt;code&gt;no-extra-strict&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Breaking Change:&lt;/strong&gt; &lt;code&gt;regex-spaces&lt;/code&gt; rule was renamed to &lt;code&gt;no-regex-spaces&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Breaking Change:&lt;/strong&gt; &lt;code&gt;no-new-array&lt;/code&gt; rule was renamed to &lt;code&gt;no-array-constructor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;New Rule: valid-jsdoc (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/536&quot;&gt;#536&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: func-names (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/595&quot;&gt;#595&lt;/a&gt;) (Kyle Nunery)&lt;/li&gt;
&lt;li&gt;New Rule: no-extra-boolean-cast (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/557&quot;&gt;#557&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;New Rule: no-sparse-arrays (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/499&quot;&gt;#499&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: no-process-exit (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/568&quot;&gt;#568&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: no-labels (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/550&quot;&gt;#550&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: no-lone-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/512&quot;&gt;#512&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;New Rule: no-path-concat (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/540&quot;&gt;#540&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: no-yoda (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/504&quot;&gt;#504&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: consistent-return (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/481&quot;&gt;#481&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;There was a bug in &lt;code&gt;no-unused-vars&lt;/code&gt; that would incorrectly flag unused parameters in the case of nested functions - this was fixed&lt;/li&gt;
&lt;li&gt;There was a bug in &lt;code&gt;no-cond-assign&lt;/code&gt; that could result in an error being thrown - this was fixed&lt;/li&gt;
&lt;li&gt;All rules now have documentation and build will fail if a rule is added without documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;other&quot; tabindex=&quot;-1&quot;&gt;Other&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Created &lt;a href=&quot;https://github.com/eslint/generator-eslint&quot;&gt;Yeoman generator&lt;/a&gt; to help create new rules&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;p&gt;The complete list of breaking changes are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;unnecessary-strict&lt;/code&gt; rule was renamed to &lt;code&gt;no-extra-strict&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;regex-spaces&lt;/code&gt; rule was renamed to &lt;code&gt;no-regex-spaces&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-new-array&lt;/code&gt; rule was renamed to &lt;code&gt;no-array-constructor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Changed &lt;code&gt;:after&lt;/code&gt; in node selectors to be &lt;code&gt;:exit&lt;/code&gt; instead&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Change: Switch :after to :exit (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/605&quot;&gt;#605&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Make sure no-unused-vars doesn’t get confused by nested functions (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/584&quot;&gt;#584&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update: .eslintrc to check more things (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Make sure JSDoc parser accepts JSDoc3-style optional parameters (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Update documentation with linking instructions for ESLintTester (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: valid-jsdoc (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/536&quot;&gt;#536&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/595&quot;&gt;#595&lt;/a&gt; improved func-names documentation (Kyle Nunery)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/595&quot;&gt;#595&lt;/a&gt; added more func-names tests (Kyle Nunery)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/595&quot;&gt;#595&lt;/a&gt; fix rule message and add more tests (Kyle Nunery)&lt;/li&gt;
&lt;li&gt;use optionator for option parsing, not optimist (George Zahariev)&lt;/li&gt;
&lt;li&gt;Include instructions for working with ESLintTester (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/595&quot;&gt;#595&lt;/a&gt; remove needless ‘function Foo() {}’ in tests (Kyle Nunery)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/595&quot;&gt;#595&lt;/a&gt; fix whitespace (Kyle Nunery)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/595&quot;&gt;#595&lt;/a&gt; fix markdown for js code blocks (Kyle Nunery)&lt;/li&gt;
&lt;li&gt;Adding information about Yeomen generator (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/595&quot;&gt;#595&lt;/a&gt; add docs for rule func-names (Kyle Nunery)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/595&quot;&gt;#595&lt;/a&gt; add func-names rule (Kyle Nunery)&lt;/li&gt;
&lt;li&gt;migrate variables array to map (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Perf: Move try-catch out of verify() function to allow V8 optimization (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/574&quot;&gt;#574&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Added instructions for running npm run profile (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;refactor variable name lookup into a separate function (Brandon Mills)&lt;/li&gt;
&lt;li&gt;optimize findVariable() in no-unused-vars (Brandon Mills)&lt;/li&gt;
&lt;li&gt;move to tests/bench (Chris Dickinson)&lt;/li&gt;
&lt;li&gt;add &lt;code&gt;npm run profile&lt;/code&gt;. (Chris Dickinson)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/586&quot;&gt;#586&lt;/a&gt; refactor based on &lt;a href=&quot;https://github.com/eslint/eslint/pull/590#discussion_r9476367&quot;&gt;https://github.com/eslint/eslint/pull/590#discussion_r9476367&lt;/a&gt; (Christian)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/586&quot;&gt;#586&lt;/a&gt; added no-unreachable jsdoc, documentation note on hoisting case (Christian)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/586&quot;&gt;#586&lt;/a&gt; add hoisting check to no-unreachable (Christian)&lt;/li&gt;
&lt;li&gt;readme: Remove stray asterisk (Timo Tijhof)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eslint/eslint/issues/580&quot;&gt;#580&lt;/a&gt; Remove eslint.getAllComments(), related docs, related tests (Christian)&lt;/li&gt;
&lt;li&gt;Added test for bug fix &lt;a href=&quot;https://github.com/eslint/eslint/issues/582&quot;&gt;#582&lt;/a&gt;. Test Passes (Shmueli Englard)&lt;/li&gt;
&lt;li&gt;Added curly braces to if statment (Shmueli Englard)&lt;/li&gt;
&lt;li&gt;Added new test for fix to &lt;a href=&quot;https://github.com/eslint/eslint/issues/582&quot;&gt;#582&lt;/a&gt; (fixes 582) (Shmueli Englard)&lt;/li&gt;
&lt;li&gt;Bug &lt;a href=&quot;https://github.com/eslint/eslint/issues/582&quot;&gt;#582&lt;/a&gt;: Added check if node.value isn’t a string just exit (Shmueli Englard)&lt;/li&gt;
&lt;li&gt;Update Rule: implement curly options for single-statement bodies (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/511&quot;&gt;#511&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: no-extra-boolean-cast (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/557&quot;&gt;#557&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;New Rule: no-sparse-arrays (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/499&quot;&gt;#499&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-spaced-func is now an error (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: no-process-exit (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/568&quot;&gt;#568&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: no-labels (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/550&quot;&gt;#550&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: no-lone-blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/512&quot;&gt;#512&lt;/a&gt;) (Brandon Mills)&lt;/li&gt;
&lt;li&gt;Added Emacs/Flycheck integration (Nikolai Prokoschenko)&lt;/li&gt;
&lt;li&gt;Build: Add perf test (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: no-cond-assign shouldn’t throw error when there’s a for loop with an empty conditional (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/53&quot;&gt;#53&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add docs for no-regex-spaces and all doc errors now break build (closes &lt;a href=&quot;https://github.com/eslint/eslint/issues/562&quot;&gt;#562&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Rename: regex-spaces to no-regex-spaces (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add docs for no-underscore-dangle (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/562&quot;&gt;#562&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add docs for no-undef-init (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/562&quot;&gt;#562&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add docs for no-return-assign (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/562&quot;&gt;#562&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: Misspelling in no-return-assign message (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add docs for no-new-wrappers (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/562&quot;&gt;#562&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add docs for no-new-object (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/562&quot;&gt;#562&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add docs for no-implied-eval (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/562&quot;&gt;#562&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Updated documentation for developing rules (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Testing: Move ESLintTester to be external dependency (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/480&quot;&gt;#480&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add list of known integrations (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix &lt;a href=&quot;https://github.com/eslint/eslint/issues/570&quot;&gt;#570&lt;/a&gt; (dmp42)&lt;/li&gt;
&lt;li&gt;document no-array-constructor rule (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/500&quot;&gt;#500&lt;/a&gt;: no-array-constructor should not flag 1-argument construction (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/501&quot;&gt;#501&lt;/a&gt;: no-array-constructor recognises CallExpression form (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;rename no-new-array rule to no-array-constructor; ref &lt;a href=&quot;https://github.com/eslint/eslint/issues/501&quot;&gt;#501&lt;/a&gt; (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Fix: Make radix rule warn on invalid second parameter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/563&quot;&gt;#563&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Added no-floating-decimal docs (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/562&quot;&gt;#562&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: no-path-concat (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/540&quot;&gt;#540&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add some missing rule docs (refs &lt;a href=&quot;https://github.com/eslint/eslint/issues/562&quot;&gt;#562&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix: CLI should not output anything when there are no warnings (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/558&quot;&gt;#558&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: no-yoda (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/504&quot;&gt;#504&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;New Rule: consistent-return (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/481&quot;&gt;#481&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Rewrite configuration documentation to include information about globals (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/555&quot;&gt;#555&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Allow YAML configuration files (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/491&quot;&gt;#491&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>ESLint 0.3.0 released</title>
    <link href="https://eslint.org/blog/2014/01/eslint-0.3.0-released/"/>
    <updated>2014-01-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/01/eslint-0.3.0-released/</id>
    <content type="html">&lt;h2 id=&quot;configuration-files&quot; tabindex=&quot;-1&quot;&gt;Configuration Files&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Breaking Change:&lt;/strong&gt; Removed the ability to use JavaScript as a configuration file format (&lt;a href=&quot;https://eslint.org/blog/2014/01/breaking-change-config-file&quot;&gt;more info&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Added the ability to use JavaScript-style comments in configuration files.&lt;/li&gt;
&lt;li&gt;Added support for &lt;code&gt;.eslintignore&lt;/code&gt; files&lt;/li&gt;
&lt;li&gt;Allow configuration files to have any extension and assume they contain JSON&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;formatters&quot; tabindex=&quot;-1&quot;&gt;Formatters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Breaking Change:&lt;/strong&gt; Switched to using stylish format as the default for ESLint (&lt;a href=&quot;https://eslint.org/blog/2014/01/breaking-change-formatter&quot;&gt;more info&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Merged stylish formatter into the main repository&lt;/li&gt;
&lt;li&gt;Added the rule ID to all formatter output to more easily identify which rule is causing a warning&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;core&quot; tabindex=&quot;-1&quot;&gt;Core&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Added the ability to traverse comment nodes in rules&lt;/li&gt;
&lt;li&gt;Ignore shebangs in JavaScript files so ESLint can validate all Node.js files&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;rules&quot; tabindex=&quot;-1&quot;&gt;Rules&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Breaking Change&lt;/strong&gt;: &lt;code&gt;unnecessary-strict&lt;/code&gt; rule was renamed to &lt;code&gt;no-extra-strict&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-empty&lt;/code&gt; now disallows empty &lt;code&gt;catch&lt;/code&gt; blocks when a &lt;code&gt;finally&lt;/code&gt; block is present&lt;/li&gt;
&lt;li&gt;&lt;code&gt;no-unused-vars&lt;/code&gt; was incorrectly reporting function expressions weren’t used when method calls were made on them - this was fixed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;brace-style&lt;/code&gt; was incorrectly reporting a violation when an &lt;code&gt;if&lt;/code&gt; statement conditional spanned multiple lines - this was fixed&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;documentation&quot; tabindex=&quot;-1&quot;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Lots of documentation updates and fixes&lt;/li&gt;
&lt;li&gt;Setup &lt;a href=&quot;https://eslint.org/&quot;&gt;eslint.org&lt;/a&gt; as the new home for documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;breaking-changes&quot; tabindex=&quot;-1&quot;&gt;Breaking Changes&lt;/h2&gt;
&lt;p&gt;The complete list of breaking changes are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2014/01/breaking-change-config-file&quot;&gt;Removed the ability to use JavaScript as a configuration file format&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/blog/2014/01/breaking-change-formatter&quot;&gt;Switched to using stylish format as the default&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unnecessary-strict&lt;/code&gt; rule was renamed to &lt;code&gt;no-extra-strict&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;complete-changelog&quot; tabindex=&quot;-1&quot;&gt;Complete Changelog&lt;/h2&gt;
&lt;p&gt;The following is the complete list of changes in this version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Config: Allow comments in JSON configuration files (fixes [&lt;a href=&quot;https://github.com/eslint/eslint/issues/492&quot;&gt;#492&lt;/a&gt;](&lt;a href=&quot;https://github.com/eslint/eslint/issues/492&quot;&gt;https://github.com/eslint/eslint/issues/492&lt;/a&gt;)) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Bug: max-len fix to report correct line number (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/552&quot;&gt;#552&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Build: Use browserify to create browser-ready ESLint (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/119&quot;&gt;#119&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Ensure all rules have entry on top-level rules index page (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Docs: Add docs for no-fallthrough rule (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update &lt;a href=&quot;http://readme.md/&quot;&gt;README.md&lt;/a&gt; (Peter deHaan)&lt;/li&gt;
&lt;li&gt;Update &lt;a href=&quot;http://readme.md/&quot;&gt;README.md&lt;/a&gt; (Peter deHaan)&lt;/li&gt;
&lt;li&gt;Update package.json (Peter deHaan)&lt;/li&gt;
&lt;li&gt;Docs: Added documentation for semi rule (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Build: Reset branch coverage target (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update build system to generate &lt;a href=&quot;http://eslint.org/&quot;&gt;eslint.org&lt;/a&gt; during release (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Updated setup doc (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fix &lt;a href=&quot;https://github.com/eslint/eslint/issues/525&quot;&gt;#525&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://github.com/eslint/eslint/issues/528&quot;&gt;#528&lt;/a&gt; (Mangled Deutz)&lt;/li&gt;
&lt;li&gt;Improve no-negated-in-lhs description (David Bruant)&lt;/li&gt;
&lt;li&gt;Fixing typo (David Bruant)&lt;/li&gt;
&lt;li&gt;Update &lt;a href=&quot;http://no-new.md/&quot;&gt;no-new.md&lt;/a&gt; (Tamas Fodor)&lt;/li&gt;
&lt;li&gt;Update &lt;a href=&quot;http://no-extra-semi.md/&quot;&gt;no-extra-semi.md&lt;/a&gt; (Tamas Fodor)&lt;/li&gt;
&lt;li&gt;Fixing broken links in documentation (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Update about page (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Site generation build step and documentation updates to support it (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/478&quot;&gt;#478&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Change message for brace-style rule (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/490&quot;&gt;#490&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add question about ES6 support to FAQ (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/530&quot;&gt;#530&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Set unlimited number of listeners for event emitter (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/524&quot;&gt;#524&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add support for comment events (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/531&quot;&gt;#531&lt;/a&gt;) Add :after events for comments (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add :after events for comments (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Allow config files to have any name (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/486&quot;&gt;#486&lt;/a&gt;). (Aparajita Fishman)&lt;/li&gt;
&lt;li&gt;List available formatters (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/533&quot;&gt;#533&lt;/a&gt;). (Aparajita Fishman)&lt;/li&gt;
&lt;li&gt;Add support for comment events (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/531&quot;&gt;#531&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add Stylish formatter and make it default. Fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/517&quot;&gt;#517&lt;/a&gt; (Sindre Sorhus)&lt;/li&gt;
&lt;li&gt;Fix missing code exit (Mangled Deutz)&lt;/li&gt;
&lt;li&gt;Added unit test for calling Config.getConfig with no arguments. (Aparajita Fishman)&lt;/li&gt;
&lt;li&gt;Typo (Mangled Deutz)&lt;/li&gt;
&lt;li&gt;Fixed docs typo (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Mark functions as used when any method is called on them (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fixed: Config.getConfig is called either with a file path or with no args (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/520&quot;&gt;#520&lt;/a&gt;) (Aparajita Fishman)&lt;/li&gt;
&lt;li&gt;Fix minor bug in no-empty rule (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;add more info for failure messages (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add ruleId to all formatters output (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/472&quot;&gt;#472&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Remove unused code (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Correctly handle case with both finally and catch in no-empty (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Update documentation for no-unused-vars (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Ensure that bound function expressions are reported as being used (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/510&quot;&gt;#510&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Allow empty catch/finally blocks (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/514&quot;&gt;#514&lt;/a&gt;) and update documentation (fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/513&quot;&gt;#513&lt;/a&gt;) (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Updated contribution guidelines (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add default setting for no-cond-assign (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add build step to check rule consistency (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;update docs: explicit cli args are exempt from eslintignore exclusions (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/505&quot;&gt;#505&lt;/a&gt;: no-cond-assign should ignore doubly parenthesised tests (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Renamed unnecessary-strict to no-extra-strict (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Fixed missing documentation links (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Add build task to check for missing docs and tests for rules (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Slight reorganization of rule groups (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Added one-var and sorted some rules (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;Updated Travis badge for new location (Nicholas C. Zakas)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/494&quot;&gt;#494&lt;/a&gt;: allow shebangs in processed JS files (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/496&quot;&gt;#496&lt;/a&gt;: lint ignored files when explicitly specified via the CLI (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;More tests (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Upgrade Istanbul (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/495&quot;&gt;#495&lt;/a&gt;: holey arrays cause no-comma-dangle rule to throw (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Documentation and minor changes (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Adding missing package registration (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;Adding support for .eslintignore and .jshintignore (Closes &lt;a href=&quot;https://github.com/eslint/eslint/issues/484&quot;&gt;#484&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;li&gt;fixes &lt;a href=&quot;https://github.com/eslint/eslint/issues/482&quot;&gt;#482&lt;/a&gt;: brace-style bug with multiline conditions (Michael Ficarra)&lt;/li&gt;
&lt;li&gt;Switching Travis to use ESLint (Closes &lt;a href=&quot;https://github.com/eslint/eslint/issues/462&quot;&gt;#462&lt;/a&gt;) (Ilya Volodin)&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  
  <entry>
    <title>Breaking change to ESLint config files</title>
    <link href="https://eslint.org/blog/2014/01/breaking-change-config-file/"/>
    <updated>2014-01-20T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/01/breaking-change-config-file/</id>
    <content type="html">&lt;p&gt;In previous versions of ESLint, it was possible to use JavaScript files as configuration files on the command line, such as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eslint -c config.js file-to-lint.js
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Configuration files written in JavaScript looked like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;highlight-line&quot;&gt;module&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;exports &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token literal-property property&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;        &lt;span class=&quot;token literal-property property&quot;&gt;semi&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;highlight-line&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The capability to use JavaScript files as configuration files is being removed in version 0.3.0. All configuration files must be in JSON format from now on.&lt;/p&gt;
&lt;h2 id=&quot;why-the-change%3F&quot; tabindex=&quot;-1&quot;&gt;Why the change?&lt;/h2&gt;
&lt;p&gt;The ability to use JavaScript configuration files was an unintended consequence of using &lt;code&gt;require()&lt;/code&gt; as a shortcut for loading JSON files. Because &lt;code&gt;require()&lt;/code&gt; will automatically parse files ending with a &lt;code&gt;.json&lt;/code&gt; extension into JSON objects, this shortcut was used as a convenience. Unfortunately, this also limited the ability to name configuration files with a different extension (see &lt;a href=&quot;https://github.com/eslint/eslint/issues/486&quot;&gt;related issue&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Since JavaScript configuration files were never officially supported, and JSON files are supposed to be the format of choice for configuration files in ESLint, we made the decision to remove the capability to use JavaScript configuration files. Moving away from using &lt;code&gt;require()&lt;/code&gt; means that all configuration files will be parsed as JSON.&lt;/p&gt;
&lt;h2 id=&quot;what-do-you-have-to-do%3F&quot; tabindex=&quot;-1&quot;&gt;What do you have to do?&lt;/h2&gt;
&lt;p&gt;If you have been using a JavaScript configuration file for ESLint, please convert it to a JSON file instead.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Breaking change to ESLint default formatter</title>
    <link href="https://eslint.org/blog/2014/01/breaking-change-formatter/"/>
    <updated>2014-01-19T00:00:00Z</updated>
    <id>https://eslint.org/blog/2014/01/breaking-change-formatter/</id>
    <content type="html">&lt;p&gt;Up until this point, the default formatter was the “compact” formatter, which outputs data such as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;foo.js: line 5, col 10, Error - Unexpected foo. (foo)
foo.js: line 6, col 11, Warning - Unexpected bar. (bar)&#92;n&#92;n2 problems
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Beginning with the next version of ESLint, the default formatter will be “stylish”, and that outputs information such as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;foo.js
  5:10  error    Unexpected foo  foo
  6:11  warning  Unexpected bar  bar

2 problems
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We think the stylish formatter is a much better user experience for those using the command line manually, making it easier to see which files are causing which problems.&lt;/p&gt;
&lt;h2 id=&quot;what-breaks%3F&quot; tabindex=&quot;-1&quot;&gt;What breaks?&lt;/h2&gt;
&lt;p&gt;It has come to our attention that some tools are using ESLint on the command line, assuming that the compact formatter is being used, and then processing that information into another format. If you are using ESLint in this way, you should update your tool immediately to specify the compact formatter instead of just using the default:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eslint -f compact foo.js
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This works equally well with older and new versions of ESLint, and will continue to work going forward.&lt;/p&gt;
&lt;p&gt;In general, it is always best to specify the formatter that you want when processing output, rather than relying on the default (which may change, as in this case). The current set of formatters is considered stable and none of them will be removed in the future, so it’s safe to rely on them.&lt;/p&gt;
</content>
  </entry>
</feed>
