<aside> 💡 This is still a WIP and experimental, and we will evolve the process based on team's feedback and how effective it is! That being said, we will need everyone's support to stick to the process to figure out whether it's productive and efficient for the team and how we can improve it to adopt the process for the long term.

</aside>

Purpose

As an open-source project, the lotus team encourages the community to file bug reports and feature/enhancement requests as issues, so the core lotus team and external contributors can improve the codebase according to the issues. Issue contributions are as valuable as the code contributions and are critical for lotus maintainability, and the lotus team should handle them effectively.

To do so, one critical procedure is performing Lotus issue triage - the process of categorizing the types of the issue and assigning levels of priority to the issues via label assignments, then putting the triaged issue on to the project board for the team and external contributors to work on.

<aside> 💡 Note: Lotus currently has a huge issue backlog, 852 open issues as of Dec 15, 2021, that contains many outdated, stale or support-related issues. The team should do an issue backlog bash in 2022 Q1 to close those issues and do a first pass triage for the rest of issues so that we have a clear and meaningful issue backlog for the team and external contributor to work on.

</aside>

Triage Process

❗Issue triaging is a collective and shared responsibility within the lotus team, and all team members should consider helping with triaging a couple of issues daily.

We are here proposing a three-tier triaging process to hopefully speed up issue management: daily first-pass triage, weekly pre-triage, and bi-weekly triage.

Daily First-Pass Triage

👩‍💻DRI: @Reiers(primary), @jennijuju

A first-pass triage should be performed for a new incoming issue within 48 business hours to provide the issue author with a timely response. After all new incoming issues are triaged, pick the most recently created un-triaged issue from the backlog.

The first-pass triage should follow the following steps:

  1. Assign the ticket to yourself to indicate that you are/will be triaging. All tickets created with templates should already have the need/triage label applied, if not, add it yourself.
  2. Make sure the author uses the issue template and follows the instructions to provide all required information. If the issue seems unclear to you or missing information, ask the author to clarify matters for you and add the need/author-input label.
    1. If the author did not respond within 3 days, the GH bot will send out a message Oops, seems like we needed more information for this issue, please comment with more details or this issue will be closed in 24 hours. automatically. The GH bot will then mark the issue as kind/stale and close the issue if the author does not respond within a day with This issue was closed because it is missing author input.
    2. If the author responds, keeping up the conversation until enough information is provided for you to complete the triage, then remove need/author-input and move to step 3.
  3. Confirm that the issue is within the lotus team's scope. For the issue that's out of the scope
  4. Check duplicates. Search for the keywords in the issue backlog to see if there is an existing issue open already. If so:
    1. keep the ticket that's using the most recent version of lotus or the most recently opened.
    2. Reference the useful information from the other tickets in the one we will keep, then close them with the duplicated ticket response.