docs/src/maintain/manage-issues.md
New issues and pull requests are filed frequently, and how we respond to those issues directly affects the success of the project. Being part of the project team means helping to triage and address issues as they come in so the project can continue to run smoothly.
There are five primary categories:
The first goal when evaluating an issue or pull request is to determine which category the issue falls into.
All of ESLint's issues and pull requests, across all GitHub repositories, are managed on our Triage Project. Please use the Triage project instead of the issues list when reviewing issues to determine what to work on. The Triage project has several columns:
We make every attempt to automate movement between as many columns as we can, but sometimes moving issues needs to be done manually.
When an issue or pull request is opened, it is automatically added to the "Needs Triage" column in the Triage project. These issues and pull requests need to be evaluated to determine the next steps. Anyone on the support team or dev team can follow these steps to properly triage issues.
Note: If an issue or pull request is in the "Triaging" column, that means someone is already triaging it, and you should let them finish. There's no need to comment on issues or pull requests in the "Triaging" column unless someone asks for help.
The steps for triaging an issue or pull request are:
CLIEngine.When an issue has been moved to the "Ready for Dev Team" column, any dev team member can pick up the issue to start evaluating it.
Note: "Good first issue" issues are intended to help new contributors feel welcome and empowered to make a contribution to ESLint. To ensure that new contributors are given a chance to work on these issues, issues labeled "good first issue" must be open for 30 days from the day the issue was labeled before a team member is permitted to work on them.
Issues may be labeled as "accepted" when the issue is:
The "accepted" label will be added to other issues by a TSC member if it's appropriate for the roadmap.
When an issue is accepted and implementation can begin, it should be moved to the "Ready to Implement" column.
New rules and rule changes require a champion. As champion, it's your job to:
Once consensus has been reached on inclusion, add the "accepted" label. Optionally, add "help wanted" and "good first issue" labels, as necessary.
Consensus is reached on issues when there are at least three team members who believe the change is a good idea and no one who believes the change is a bad idea. In order to indicate your support for an issue, leave a +1 reaction (thumbs up) on the original issue description in addition to any comments you might have.
If consensus cannot be reached on an issue, or an issue's progress has been stalled and it's not clear if the issue should be closed, then you can refer the issue to the TSC for resolution. To do so, add the "tsc agenda" label to the issue and add a comment including the following information:
The issue will be discussed at the next TSC meeting and the resolution will be posted back to the issue.
In addition to the above, changes to the core (including CLI changes) that would result in a minor or major version release must be approved by the TSC by standard TSC motion. Add the label "tsc agenda" to the issue and it will be discussed at the next TSC meeting. In general, requests should meet the following criteria to be considered:
When a suggestion is too ambitious or would take too much time to complete, it's better not to accept the proposal. Stick to small, incremental changes and lay out a roadmap of where you'd like the project to go eventually. Don't let the project get bogged down in big features that will take a long time to complete.
Breaking Changes: Be on the lookout for changes that would be breaking. Issues that represent breaking changes should be labeled as "breaking".
To request feedback from the TSC, team members can ping @eslint/eslint-tsc and add the label "tsc waiting" on an issue or pull request.
Unless otherwise requested, every TSC member should provide feedback on issues labeled "tsc waiting".
If a TSC member is unable to respond in a timely manner, they should post a comment indicating when they expect to be able to leave their feedback.
The last TSC member who provides feedback on an issue labeled "tsc waiting" should remove the label.
All team members are allowed to close issues depending on how the issue has been resolved.
Team members may close an issue immediately if:
Team members may close an issue where the consensus is to not accept the issue after a waiting period (to ensure that other team members have a chance to review the issue before it is closed):
In an effort to keep the issues backlog manageable, team members may also close an issue if the following conditions are met: