New Process for Tracking and Assigning Issues/Pull Requests in QIIME 2

Hi all! :wave:

The QIIME 2 core development team has been testing out a new process for how we track incoming issues and pull requests, and how we can more effectively manage our community contributions along with our team's funded grant deliverables. :scroll:

Our plan is to continue working through this process throughout the 2024.10 development cycle, and formalize this process with our next release - but in the meantime, we'd like to share the current process with the developer community. Even though this is still essentially in beta (and may actively evolve/change throughout the coming months), this will hopefully be helpful for all of you to see what we're currently working on, and how we're prioritizing things! :1234:

Triage Board

  • This project board is what we use to 'catch' any new issues or pull requests we receive within the QIIME 2 Github Organization. Our team reviews this board once a week to determine if the given submission(s) are something we will/won't do, what the timeline for completion would be (i.e. current release or future release), and if we require any additional information before moving forward.

Current Dev Cycle Project Board (2024.10)

  • This project board is where we track all issues and pull requests that we aim to complete within the current development cycle (i.e. the next release of QIIME 2). This view of the board shows the following:
    • Backlog: Items that haven't been picked up by a developer yet
    • In Development: Items that are currently in progress (i.e. someone on our team is actively working on them)
    • Needs Review: Items that require a code review before they can be merged
    • Ready for Merge: Items that have been reviewed and approved and are ready to be merged
    • Changelog Needed: Items that have been merged but still need to be added to our development changelog
    • Completed: Items that have been merged and added to our development changelog

Current Dev Cycle Assignments (2024.10)

  • This view of our current dev cycle project board shows which developer on our team is assigned to particular issues and/or pull requests, along with the type of project these assignments fall under. We do a weekly review of each team member's assignments, provide additional tasks to everyone as needed (capping anyone's current workload at five assignments at any given time). Assignments can fall under the following project types:
    • Funded Objective: This is something that is required for our current grant deliverables, and must be completed within the designated time frame.
    • Urgent: This is something that requires immediate attention (typically a bug that will warrant a patch release).
    • Maintenance: This is something that is required for general software upkeep within the QIIME 2 ecosystem. Examples of this include documentation updates, changes to our packaging infrastructure, and general code updates related to deprecated dependency versions/actions/etc.
    • Weekly: This is something that doesn't fall in any of the categories above, but will be assigned to someone on our team as a weekly round-robin task. This is typically where our community contributions/requests will be managed on a more regular basis, so that we can continue integrating helpful ideas/features/requests from our developer community!

We hope this helps provide more insight into what's happening behind the scenes, and can help each of you to better understand what we're prioritizing and currently working on. Don't hesitate to reach out with any questions or comments about this process, as it is still a work in progress! :gear:

Happy :qiime2:ing! :nerd_face: