Repository: eslint/eslint
Pull request #9086 (2017-08-07 02:21:08)

Docs: update instructions for adding TSC members
<!--
    ESLint adheres to the [JS Foundation Code of Conduct](https://js.foundation/community/code-of-conduct).
-->

**What is the purpose of this pull request? (put an "X" next to item)**

[x] Documentation update

<!--
    If the item you've checked above has a template, please paste the template questions below and answer them. (If this pull request is addressing an issue, you can just paste a link to the issue here instead.)
-->

<!--
    Please ensure your pull request is ready:

    - Read the pull request guide (http://eslint.org/docs/developer-guide/contributing/pull-requests)
    - Include tests for this change
    - Update documentation for this change (if appropriate)
-->

<!--
    The following is required for all pull requests:
-->

**What changes did you make? (Give an overview)**

From [last month's TSC meeting](https://github.com/eslint/tsc-meetings/blob/4a238489c2f035711070e8beaa2ba11827bcc521/notes/2017/2017-07-06.md#difficulty-of-reaching-quorum), the TSC started using a calendar invite for meetings. When TSC members are added in the future, we should remember to add them to the calendar invite. This commit updates the guidelines for adding TSC members to include that reminder. 

**Is there anything you'd like reviewers to focus on?**

Nothing in particular

eslintbot: LGTM
not-an-aardvark: > LGTM, though *technically* this might need TSC approval since the Governance document is being modified...?

¯\\\_(ツ)_/¯ I suppose so.

**TSC Summary**: This adds a line to the project governance documentation to indicate that new TSC members should be added to the Google Calendar invite.
**TSC Question**: (a) Should we add this line? (b) In the future, do minor changes to the governance documentation need to be approved by the TSC?

Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9aa808d68..2ca850a96 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+v4.4.1 - August 7, 2017
+
+* ec93614 Fix: no-multi-spaces to avoid reporting consecutive tabs (fixes #9079) (#9087) (Teddy Katz)
+
 v4.4.0 - August 5, 2017
 
 * 89196fd Upgrade: Espree to 3.5.0 (#9074) (Gyandeep Singh)
diff --git a/docs/maintainer-guide/governance.md b/docs/maintainer-guide/governance.md
index 098f11598..8fde31c16 100644
--- a/docs/maintainer-guide/governance.md
+++ b/docs/maintainer-guide/governance.md
@@ -92,13 +92,14 @@ A Committer is invited to become a TSC member by existing TSC members. A nominat
 #### Process for Adding TSC Members
 
 1. Add the GitHub user to the "ESLint TSC" team
-2. Set the GitHub user to be have the "Owner" role for the ESLint organization
-3. Send welcome email with link to maintainer guide
-4. Add TSC member to the README
-5. Invite to Gitter TSC chatroom
-6. Make TSC member an admin on the ESLint team mailing list
-7. Add TSC member as an admin to ESLint Twitter Account on Tweetdeck
-8. Tweet congratulations to the new TSC member from the ESLint Twitter account
+1. Set the GitHub user to be have the "Owner" role for the ESLint organization
+1. Send welcome email with link to maintainer guide
+1. Add the TSC member to the README
+1. Invite to the Gitter TSC chatroom
+1. Make the TSC member an admin on the ESLint team mailing list
+1. Add the TSC member to the recurring TSC meeting event on Google Calendar
+1. Add the TSC member as an admin to ESLint Twitter Account on Tweetdeck
+1. Tweet congratulations to the new TSC member from the ESLint Twitter account
 
 #### TSC Meetings
 
diff --git a/lib/rules/indent.js b/lib/rules/indent.js
index 45332f447..429567ee5 100644
--- a/lib/rules/indent.js
+++ b/lib/rules/indent.js
@@ -783,7 +783,7 @@ module.exports = {
             offsets.setDesiredOffsets(
                 [startToken.range[1], endToken.range[0]],
                 startToken,
-                offset === "first" ? 1 : offset
+                typeof offset === "number" ? offset : 1
             );
             offsets.setDesiredOffset(endToken, startToken, 0);
 
diff --git a/lib/rules/no-multi-spaces.js b/lib/rules/no-multi-spaces.js
index 73e514335..84f1b5018 100644
--- a/lib/rules/no-multi-spaces.js
+++ b/lib/rules/no-multi-spaces.js
@@ -76,8 +76,11 @@ module.exports = {
                     }
                     const rightToken = tokensAndComments[leftIndex + 1];
 
-                    // Ignore tokens that have less than 2 spaces between them or are on different lines
-                    if (leftToken.range[1] + 2 > rightToken.range[0] || leftToken.loc.end.line < rightToken.loc.start.line) {
+                    // Ignore tokens that don't have 2 spaces between them or are on different lines
+                    if (
+                        !sourceCode.text.slice(leftToken.range[1], rightToken.range[0]).includes("  ") ||
+                        leftToken.loc.end.line < rightToken.loc.start.line
+                    ) {
                         return;
                     }
 
diff --git a/package.json b/package.json
index 3d4e1795c..541cb8d18 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "eslint",
-  "version": "4.4.0",
+  "version": "4.4.1",
   "author": "Nicholas C. Zakas <nicholas+npm@nczconsulting.com>",
   "description": "An AST-based pattern checker for JavaScript.",
   "bin": {
diff --git a/templates/blogpost.md.ejs b/templates/blogpost.md.ejs
index b33f36199..0f0a2f752 100644
--- a/templates/blogpost.md.ejs
+++ b/templates/blogpost.md.ejs
@@ -7,7 +7,7 @@ tags:
 ---
 # ESLint v<%= version %> released
 
-We just pushed ESLint v<%- version %>, which is a <%- type %> release upgrade of ESLint. This release <% if (type !== "patch") { %>adds some new features and<% } %> fixes several bugs found in the previous release. <% if (type === "major") { %>This release also has some breaking changes, so please read the following closely. <% } %>
+We just pushed ESLint v<%- version %>, which is a <%- type %> release upgrade of ESLint. This release <% if (type !== "patch") { %>adds some new features and<% } %>fixes several bugs found in the previous release. <% if (type === "major") { %>This release also has some breaking changes, so please read the following closely. <% } %>
 
 <%
 const RULE_REGEX = new RegExp(`\`?\\b(${ruleList.join("|")})\\b\`?`, "g");


Test patch:
diff --git a/tests/lib/rules/indent.js b/tests/lib/rules/indent.js
index e2e843bce..be026fe51 100644
--- a/tests/lib/rules/indent.js
+++ b/tests/lib/rules/indent.js
@@ -4915,6 +4915,24 @@ ruleTester.run("indent", rule, {
                     );
                 }
             `
+        },
+        {
+            code: unIndent`
+                a(b
+                  , c
+                )
+            `,
+            options: [2, { CallExpression: { arguments: "off" } }]
+        },
+        {
+            code: unIndent`
+                a(
+                  new B({
+                    c,
+                  })
+                );
+            `,
+            options: [2, { CallExpression: { arguments: "off" } }]
         }
     ],
 
diff --git a/tests/lib/rules/no-multi-spaces.js b/tests/lib/rules/no-multi-spaces.js
index d3dcf61f5..ea726fbdd 100644
--- a/tests/lib/rules/no-multi-spaces.js
+++ b/tests/lib/rules/no-multi-spaces.js
@@ -101,7 +101,9 @@ ruleTester.run("no-multi-spaces", rule, {
         "foo\n \f  bar",
 
         // https://github.com/eslint/eslint/issues/9001
-        "a".repeat(2e5)
+        "a".repeat(2e5),
+
+        "foo\t\t+bar"
     ],
 
     invalid: [