From 8506ddde33ac210f88b9a8312546ef542ef15dad Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Tue, 12 Jul 2022 05:11:23 -0400 Subject: [PATCH 1/6] breaking: strictly define Node API (#259) --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 509696b9..2349ba1d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,8 @@ "version": "4.4.1", "description": "An ESLint plugin for linting ESLint plugins", "author": "Teddy Katz", - "main": "lib/index.js", + "main": "./lib/index.js", + "exports": "./lib/index.js", "license": "MIT", "scripts": { "generate-readme-table": "node build/generate-readme-table.js", From 8634d844c8543ce878e4f13d6f9ac39f61c90679 Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Tue, 12 Jul 2022 05:13:52 -0400 Subject: [PATCH 2/6] breaking: add `recommended` rules `prefer-message-ids`, `prefer-output-null`, `no-missing-message-ids`, `no-unused-message-ids` (#258) * breaking: add `recommended` rules `prefer-message-ids`, `prefer-output-null`, `no-missing-message-ids`, `no-unused-message-ids`, remove `consistent-output` * re-enable consistent-output as recommended --- README.md | 8 ++++---- docs/rules/no-missing-message-ids.md | 2 ++ docs/rules/no-unused-message-ids.md | 2 ++ docs/rules/prefer-message-ids.md | 2 ++ docs/rules/prefer-output-null.md | 2 ++ lib/rules/no-missing-message-ids.js | 2 +- lib/rules/no-unused-message-ids.js | 2 +- lib/rules/prefer-message-ids.js | 2 +- lib/rules/prefer-output-null.js | 2 +- 9 files changed, 16 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f9c2cd5b..59f09c65 100644 --- a/README.md +++ b/README.md @@ -67,15 +67,15 @@ Name | ✔️ | 🛠 | 💡 | Description [no-deprecated-context-methods](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-deprecated-context-methods.md) | ✔️ | 🛠 | | disallow usage of deprecated methods on rule context objects [no-deprecated-report-api](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-deprecated-report-api.md) | ✔️ | 🛠 | | disallow the version of `context.report()` with multiple arguments [no-identical-tests](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-identical-tests.md) | ✔️ | 🛠 | | disallow identical tests -[no-missing-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-missing-message-ids.md) | | | | disallow `messageId`s that are missing from `meta.messages` +[no-missing-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-missing-message-ids.md) | ✔️ | | | disallow `messageId`s that are missing from `meta.messages` [no-missing-placeholders](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-missing-placeholders.md) | ✔️ | | | disallow missing placeholders in rule report messages [no-only-tests](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-only-tests.md) | ✔️ | | 💡 | disallow the test case property `only` -[no-unused-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-unused-message-ids.md) | | | | disallow unused `messageId`s in `meta.messages` +[no-unused-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-unused-message-ids.md) | ✔️ | | | disallow unused `messageId`s in `meta.messages` [no-unused-placeholders](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-unused-placeholders.md) | ✔️ | | | disallow unused placeholders in rule report messages [no-useless-token-range](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-useless-token-range.md) | ✔️ | 🛠 | | disallow unnecessary calls to `sourceCode.getFirstToken()` and `sourceCode.getLastToken()` -[prefer-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-message-ids.md) | | | | require using `messageId` instead of `message` to report rule violations +[prefer-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-message-ids.md) | ✔️ | | | require using `messageId` instead of `message` to report rule violations [prefer-object-rule](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-object-rule.md) | ✔️ | 🛠 | | disallow function-style rules -[prefer-output-null](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-output-null.md) | | 🛠 | | disallow invalid RuleTester test cases where the `output` matches the `code` +[prefer-output-null](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-output-null.md) | ✔️ | 🛠 | | disallow invalid RuleTester test cases where the `output` matches the `code` [prefer-placeholders](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-placeholders.md) | | | | require using placeholders for dynamic report messages [prefer-replace-text](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-replace-text.md) | | | | require using `replaceText()` instead of `replaceTextRange()` [report-message-format](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/report-message-format.md) | | | | enforce a consistent format for rule report messages diff --git a/docs/rules/no-missing-message-ids.md b/docs/rules/no-missing-message-ids.md index 76ee3599..268c42b1 100644 --- a/docs/rules/no-missing-message-ids.md +++ b/docs/rules/no-missing-message-ids.md @@ -1,5 +1,7 @@ # Disallow `messageId`s that are missing from `meta.messages` (no-missing-message-ids) +✔️ The `"extends": "plugin:eslint-plugin/recommended"` property in a configuration file enables this rule. + When using `meta.messages` and `messageId` to report rule violations, it's possible to mistakenly use a `messageId` that doesn't exist in `meta.messages`. ## Rule Details diff --git a/docs/rules/no-unused-message-ids.md b/docs/rules/no-unused-message-ids.md index 758140ab..942d33d7 100644 --- a/docs/rules/no-unused-message-ids.md +++ b/docs/rules/no-unused-message-ids.md @@ -1,5 +1,7 @@ # Disallow unused `messageId`s in `meta.messages` (no-unused-message-ids) +✔️ The `"extends": "plugin:eslint-plugin/recommended"` property in a configuration file enables this rule. + When using `meta.messages` and `messageId` to report rule violations, it's possible to mistakenly leave a message in `meta.messages` that is never used. ## Rule Details diff --git a/docs/rules/prefer-message-ids.md b/docs/rules/prefer-message-ids.md index 4455df26..4f1696ce 100644 --- a/docs/rules/prefer-message-ids.md +++ b/docs/rules/prefer-message-ids.md @@ -1,5 +1,7 @@ # Require using `messageId` instead of `message` to report rule violations (prefer-message-ids) +✔️ The `"extends": "plugin:eslint-plugin/recommended"` property in a configuration file enables this rule. + When reporting a rule violation, it's preferred to provide the violation message with the `messageId` property instead of the `message` property. Message IDs provide the following benefits: * Rule violation messages can be stored in a central `meta.messages` object for convenient management diff --git a/docs/rules/prefer-output-null.md b/docs/rules/prefer-output-null.md index 31d6ceb6..e5e0a5de 100644 --- a/docs/rules/prefer-output-null.md +++ b/docs/rules/prefer-output-null.md @@ -1,5 +1,7 @@ # Disallow invalid RuleTester test cases where the `output` matches the `code` (prefer-output-null) +✔️ The `"extends": "plugin:eslint-plugin/recommended"` property in a configuration file enables this rule. + ⚒️ The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#--fix) can automatically fix some of the problems reported by this rule. Instead of repeating the test case `code`, using `output: null` is more concise and makes it easier to distinguish whether a test case provides an autofix. diff --git a/lib/rules/no-missing-message-ids.js b/lib/rules/no-missing-message-ids.js index f10c9507..47cabd78 100644 --- a/lib/rules/no-missing-message-ids.js +++ b/lib/rules/no-missing-message-ids.js @@ -14,7 +14,7 @@ module.exports = { description: 'disallow `messageId`s that are missing from `meta.messages`', category: 'Rules', - recommended: false, + recommended: true, url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/no-missing-message-ids.md', }, fixable: null, diff --git a/lib/rules/no-unused-message-ids.js b/lib/rules/no-unused-message-ids.js index a1724a60..df793605 100644 --- a/lib/rules/no-unused-message-ids.js +++ b/lib/rules/no-unused-message-ids.js @@ -13,7 +13,7 @@ module.exports = { docs: { description: 'disallow unused `messageId`s in `meta.messages`', category: 'Rules', - recommended: false, + recommended: true, url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/no-unused-message-ids.md', }, fixable: null, diff --git a/lib/rules/prefer-message-ids.js b/lib/rules/prefer-message-ids.js index 9fca98a5..8d80860b 100644 --- a/lib/rules/prefer-message-ids.js +++ b/lib/rules/prefer-message-ids.js @@ -15,7 +15,7 @@ module.exports = { description: 'require using `messageId` instead of `message` to report rule violations', category: 'Rules', - recommended: false, + recommended: true, url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/prefer-message-ids.md', }, fixable: null, diff --git a/lib/rules/prefer-output-null.js b/lib/rules/prefer-output-null.js index 87fe877f..0716d91e 100644 --- a/lib/rules/prefer-output-null.js +++ b/lib/rules/prefer-output-null.js @@ -19,7 +19,7 @@ module.exports = { description: 'disallow invalid RuleTester test cases where the `output` matches the `code`', category: 'Tests', - recommended: false, + recommended: true, url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/prefer-output-null.md', }, fixable: 'code', From 84249ec4fe84f2c153d63329ceaee097ae5b20a8 Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Tue, 12 Jul 2022 05:14:31 -0400 Subject: [PATCH 3/6] breaking: drop ESLint v6 support (#257) --- .github/workflows/main.yml | 11 ----------- package.json | 2 +- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 232d15d0..b4968d26 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -37,17 +37,6 @@ jobs: - run: npm install - run: npm run lint - eslint6: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: "18.x" - - run: npm install - - run: npm install --save-dev eslint@6 - - run: npm test - eslint7: runs-on: ubuntu-latest steps: diff --git a/package.json b/package.json index 2349ba1d..9bc68908 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "typescript": "^4.4.3" }, "peerDependencies": { - "eslint": ">=6.0.0" + "eslint": ">=7.0.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" From 1c96c779eb6084b95ab743d838db6b3db4512f1a Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Tue, 12 Jul 2022 05:15:29 -0400 Subject: [PATCH 4/6] breaking: drop Node 12/17 support (#256) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 唯然 --- .github/workflows/main.yml | 2 -- package.json | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b4968d26..8e479e68 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,10 +13,8 @@ jobs: matrix: node-version: - '18' - - '17' - '16' - '14' - - '12' os: - ubuntu-latest steps: diff --git a/package.json b/package.json index 9bc68908..5a6e3ea7 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "eslint": ">=7.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^14.17.0 || ^16.0.0 || >= 18.0.0" }, "release-it": { "git": { From 047b0b56bd61c88122518644e8a6f9b5ab7255bb Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Tue, 12 Jul 2022 05:15:49 -0400 Subject: [PATCH 5/6] feat!: Update `no-missing-placeholders` and `no-unused-placeholders` to handle messageIds (#252) * breaking: update no-missing-placeholders and no-unused-placeholders to handle messageIds * use utils --- lib/rules/no-missing-message-ids.js | 2 +- lib/rules/no-missing-placeholders.js | 46 ++++++--- lib/rules/no-unused-placeholders.js | 46 ++++++--- tests/lib/rules/no-missing-placeholders.js | 107 +++++++++++++++++++++ tests/lib/rules/no-unused-placeholders.js | 107 +++++++++++++++++++++ 5 files changed, 283 insertions(+), 25 deletions(-) diff --git a/lib/rules/no-missing-message-ids.js b/lib/rules/no-missing-message-ids.js index 47cabd78..e23382fb 100644 --- a/lib/rules/no-missing-message-ids.js +++ b/lib/rules/no-missing-message-ids.js @@ -71,7 +71,7 @@ module.exports = { values.forEach((val) => { if ( val.type === 'Literal' && - val.value !== null && + typeof val.value === 'string' && val.value !== '' && !utils.getMessageIdNodeById( val.value, diff --git a/lib/rules/no-missing-placeholders.js b/lib/rules/no-missing-placeholders.js index e598e882..6523d2a8 100644 --- a/lib/rules/no-missing-placeholders.js +++ b/lib/rules/no-missing-placeholders.js @@ -31,19 +31,17 @@ module.exports = { }, create(context) { + const sourceCode = context.getSourceCode(); + const { scopeManager } = sourceCode; + let contextIdentifiers; - // ---------------------------------------------------------------------- - // Public - // ---------------------------------------------------------------------- + const ruleInfo = utils.getRuleInfo(sourceCode); + const messagesNode = utils.getMessagesNode(ruleInfo, scopeManager); return { Program(ast) { - const sourceCode = context.getSourceCode(); - contextIdentifiers = utils.getContextIdentifiers( - sourceCode.scopeManager, - ast - ); + contextIdentifiers = utils.getContextIdentifiers(scopeManager, ast); }, CallExpression(node) { if ( @@ -57,10 +55,34 @@ module.exports = { return; } - const reportMessagesAndDataArray = utils - .collectReportViolationAndSuggestionData(reportInfo) - .filter((obj) => obj.message); - for (const { message, data } of reportMessagesAndDataArray) { + const reportMessagesAndDataArray = + utils.collectReportViolationAndSuggestionData(reportInfo); + + if (messagesNode) { + // Check for any potential instances where we can use the messageId to fill in the message for convenience. + reportMessagesAndDataArray.forEach((obj) => { + if ( + !obj.message && + obj.messageId && + obj.messageId.type === 'Literal' && + typeof obj.messageId.value === 'string' + ) { + const correspondingMessage = utils.getMessageIdNodeById( + obj.messageId.value, + ruleInfo, + scopeManager, + context.getScope() + ); + if (correspondingMessage) { + obj.message = correspondingMessage.value; + } + } + }); + } + + for (const { message, data } of reportMessagesAndDataArray.filter( + (obj) => obj.message + )) { const messageStaticValue = getStaticValue( message, context.getScope() diff --git a/lib/rules/no-unused-placeholders.js b/lib/rules/no-unused-placeholders.js index c552bfee..61f17adb 100644 --- a/lib/rules/no-unused-placeholders.js +++ b/lib/rules/no-unused-placeholders.js @@ -30,19 +30,17 @@ module.exports = { }, create(context) { + const sourceCode = context.getSourceCode(); + const { scopeManager } = sourceCode; + let contextIdentifiers; - // ---------------------------------------------------------------------- - // Public - // ---------------------------------------------------------------------- + const ruleInfo = utils.getRuleInfo(sourceCode); + const messagesNode = utils.getMessagesNode(ruleInfo, scopeManager); return { Program(ast) { - const sourceCode = context.getSourceCode(); - contextIdentifiers = utils.getContextIdentifiers( - sourceCode.scopeManager, - ast - ); + contextIdentifiers = utils.getContextIdentifiers(scopeManager, ast); }, CallExpression(node) { if ( @@ -56,10 +54,34 @@ module.exports = { return; } - const reportMessagesAndDataArray = utils - .collectReportViolationAndSuggestionData(reportInfo) - .filter((obj) => obj.message); - for (const { message, data } of reportMessagesAndDataArray) { + const reportMessagesAndDataArray = + utils.collectReportViolationAndSuggestionData(reportInfo); + + if (messagesNode) { + // Check for any potential instances where we can use the messageId to fill in the message for convenience. + reportMessagesAndDataArray.forEach((obj) => { + if ( + !obj.message && + obj.messageId && + obj.messageId.type === 'Literal' && + typeof obj.messageId.value === 'string' + ) { + const correspondingMessage = utils.getMessageIdNodeById( + obj.messageId.value, + ruleInfo, + scopeManager, + context.getScope() + ); + if (correspondingMessage) { + obj.message = correspondingMessage.value; + } + } + }); + } + + for (const { message, data } of reportMessagesAndDataArray.filter( + (obj) => obj.message + )) { const messageStaticValue = getStaticValue( message, context.getScope() diff --git a/tests/lib/rules/no-missing-placeholders.js b/tests/lib/rules/no-missing-placeholders.js index 78d9a645..fb2aafb6 100644 --- a/tests/lib/rules/no-missing-placeholders.js +++ b/tests/lib/rules/no-missing-placeholders.js @@ -113,6 +113,60 @@ ruleTester.run('no-missing-placeholders', rule, { } }; `, + // messageId but no placeholder. + ` + module.exports = { + meta: { + messages: { myMessageId: 'foo' } + }, + create(context) { + context.report({ node, messageId: 'myMessageId' }); + } + }; + `, + // messageId but the message doesn't exist in `meta.messages`. + ` + module.exports = { + meta: { + messages: { } + }, + create(context) { + context.report({ node, messageId: 'myMessageId' }); + } + }; + `, + // messageId but no `meta.messages`. + ` + module.exports = { + meta: { }, + create(context) { + context.report({ node, messageId: 'myMessageId' }); + } + }; + `, + // messageId but no `meta`. + ` + module.exports = { + create(context) { + context.report({ node, messageId: 'myMessageId' }); + } + }; + `, + // messageId with correctly-used placeholder. + ` + module.exports = { + meta: { + messages: { myMessageId: 'foo {{bar}}' } + }, + create(context) { + context.report({ + node, + messageId: 'myMessageId', + data: { bar: 'baz' } + }); + } + }; + `, // Message in variable. ` const MESSAGE = 'foo {{bar}}'; @@ -145,6 +199,25 @@ ruleTester.run('no-missing-placeholders', rule, { } }; `, + // Suggestion with messageId + ` + module.exports = { + meta: { messages: { myMessageId: 'Remove {{functionName}}' } }, + create(context) { + context.report({ + node, + suggest: [ + { + messageId: 'myMessageId', + data: { + functionName: 'foo' + } + } + ] + }); + } + }; + `, ], invalid: [ @@ -269,6 +342,25 @@ ruleTester.run('no-missing-placeholders', rule, { `, errors: [error('bar')], }, + { + // Suggestion and messageId + code: ` + module.exports = { + meta: { messages: { myMessageId: 'foo {{bar}}' } }, + create(context) { + context.report({ + node, + suggest: [ + { + messageId: 'myMessageId', + } + ] + }); + } + }; + `, + errors: [error('bar')], + }, { // `create` in variable. code: ` @@ -283,5 +375,20 @@ ruleTester.run('no-missing-placeholders', rule, { `, errors: [error('hasOwnProperty')], }, + { + // messageId. + code: ` + module.exports = { + meta: { messages: { myMessageId: 'foo {{bar}}' } }, + create(context) { + context.report({ + node, + messageId: 'myMessageId' + }); + } + }; + `, + errors: [error('bar')], + }, ], }); diff --git a/tests/lib/rules/no-unused-placeholders.js b/tests/lib/rules/no-unused-placeholders.js index cabdbc2c..8679d0c4 100644 --- a/tests/lib/rules/no-unused-placeholders.js +++ b/tests/lib/rules/no-unused-placeholders.js @@ -122,6 +122,77 @@ ruleTester.run('no-unused-placeholders', rule, { } }; `, + // Suggestion with messageId + ` + module.exports = { + meta: { messages: { myMessageId: 'foo {{bar}}' } }, + create(context) { + context.report({ + node, + suggest: [ + { + messageId: 'myMessageId', + data: { 'bar': 'baz' } + } + ] + }); + } + }; + `, + // messageId but no placeholder. + ` + module.exports = { + meta: { + messages: { myMessageId: 'foo' } + }, + create(context) { + context.report({ node, messageId: 'myMessageId' }); + } + }; + `, + // messageId but the message property doesn't exist yet. + ` + module.exports = { + meta: { + messages: { } + }, + create(context) { + context.report({ node, messageId: 'myMessageId' }); + } + }; + `, + // messageId but no `meta.messages`. + ` + module.exports = { + meta: {}, + create(context) { + context.report({ node, messageId: 'myMessageId' }); + } + }; + `, + // messageId but no `meta`. + ` + module.exports = { + create(context) { + context.report({ node, messageId: 'myMessageId' }); + } + }; + `, + // messageId with correctly-used placeholder. + ` + module.exports = { + meta: { + messages: { myMessageId: 'foo {{bar}}' } + }, + create(context) { + context.report({ + node, + messageId: 'myMessageId', + data: { bar: 'baz' } + }); + } + }; + `, ], invalid: [ @@ -197,6 +268,22 @@ ruleTester.run('no-unused-placeholders', rule, { `, errors: [error('baz')], }, + { + // messageId. + code: ` + module.exports = { + meta: { messages: { myMessageId: 'foo' } }, + create(context) { + context.report({ + node, + messageId: 'myMessageId', + data: { bar } + }); + } + }; + `, + errors: [error('bar')], + }, { // Suggestion code: ` @@ -216,5 +303,25 @@ ruleTester.run('no-unused-placeholders', rule, { `, errors: [error('bar')], }, + { + // Suggestion and messageId + code: ` + module.exports = { + meta: { messages: { myMessageId: 'foo' } }, + create(context) { + context.report({ + node, + suggest: [ + { + messageId: 'myMessageId', + data: { bar } + } + ] + }); + } + }; + `, + errors: [error('bar')], + }, ], }); From f987243b9bae8312b9a12f8586b4cd012ce3cd92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=AF=E7=84=B6?= Date: Tue, 12 Jul 2022 17:23:08 +0800 Subject: [PATCH 6/6] chore: release v5.0.0 --- CHANGELOG.md | 11 +++++++++++ package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e7858ff..566a45e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ +## [5.0.0](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/compare/v4.4.1...v5.0.0) (2022-07-12) + + +### ⚠ BREAKING CHANGES + +* Update `no-missing-placeholders` and `no-unused-placeholders` to handle messageIds (#252) + +### Features + +* Update `no-missing-placeholders` and `no-unused-placeholders` to handle messageIds ([#252](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/252)) ([047b0b5](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/commit/047b0b56bd61c88122518644e8a6f9b5ab7255bb)) + ### [4.4.1](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/compare/v4.4.0...v4.4.1) (2022-07-11) diff --git a/package.json b/package.json index 5a6e3ea7..48ea7157 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eslint-plugin-eslint-plugin", - "version": "4.4.1", + "version": "5.0.0", "description": "An ESLint plugin for linting ESLint plugins", "author": "Teddy Katz", "main": "./lib/index.js",