{"action":"opened","issue":{"url":"https://api.github.com/repos/eslint/eslint/issues/9193","repository_url":"https://api.github.com/repos/eslint/eslint","labels_url":"https://api.github.com/repos/eslint/eslint/issues/9193/labels{/name}","comments_url":"https://api.github.com/repos/eslint/eslint/issues/9193/comments","events_url":"https://api.github.com/repos/eslint/eslint/issues/9193/events","html_url":"https://github.com/eslint/eslint/issues/9193","id":254548145,"number":9193,"title":"eslint-plugin-eslint-comments will be broken in 4.6.0","user":{"login":"not-an-aardvark","id":11638619,"avatar_url":"https://avatars2.githubusercontent.com/u/11638619?v=4","gravatar_id":"","url":"https://api.github.com/users/not-an-aardvark","html_url":"https://github.com/not-an-aardvark","followers_url":"https://api.github.com/users/not-an-aardvark/followers","following_url":"https://api.github.com/users/not-an-aardvark/following{/other_user}","gists_url":"https://api.github.com/users/not-an-aardvark/gists{/gist_id}","starred_url":"https://api.github.com/users/not-an-aardvark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/not-an-aardvark/subscriptions","organizations_url":"https://api.github.com/users/not-an-aardvark/orgs","repos_url":"https://api.github.com/users/not-an-aardvark/repos","events_url":"https://api.github.com/users/not-an-aardvark/events{/privacy}","received_events_url":"https://api.github.com/users/not-an-aardvark/received_events","type":"User","site_admin":false},"labels":[{"id":82922548,"url":"https://api.github.com/repos/eslint/eslint/labels/core","name":"core","color":"c7def8","default":false},{"id":45711352,"url":"https://api.github.com/repos/eslint/eslint/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":255319420,"url":"https://api.github.com/repos/eslint/eslint/labels/evaluating","name":"evaluating","color":"fef2c0","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-09-01T06:29:15Z","updated_at":"2017-09-01T06:29:15Z","closed_at":null,"author_association":"OWNER","body":"`eslint-plugin-eslint-comments` is a plugin created by @mysticatea to solve the issue in https://github.com/eslint/eslint/issues/6190 of linting for unused `/* eslint-disable */` comments. Since ESLint rules aren't supposed to be aware of other rules, a plugin like this technically isn't supposed to be possible. However it was successfully implemented by monkeypatching a private API `context.eslint.report`), and has been useful to a lot of people for avoiding unused disable comments.\r\n\r\nI just realized that `eslint-plugin-eslint-comments` will be broken in v4.6.0 as a result of d672aef42b2950c710d598cb970d630f49b2be4b, which refactors ESLint's internal reporting logic and removes the private API that was being monkeypatched. With the current version of ESLint on `master`, it is no longer possible to implement something like `eslint-plugin-eslint-comments`, because `context` objects in rules don't have a reference to the underlying `Linter` instance anymore. We [explicitly don't make any guarantees](https://eslint.org/docs/developer-guide/nodejs-api) about the stability of undocumented APIs, but it would still be nice to avoid breaking peoples' linting builds if possible.\r\n\r\nSo we have a few things to consider:\r\n\r\n* Should we revert d672aef42b2950c710d598cb970d630f49b2be4b for now?\r\n* Should we reconsider adding a core feature to warn on unused disable comments? Personally, I don't think using a plugin for this is a good solution in the long-term, because it breaks the boundaries between rules and prevents us from refactoring internal APIs.\r\n\r\ncc @ilyavolodin @mysticatea "}}
{"actor":{"display_login":"not-an-aardvark"}}