This devtalk post is intended to solicit opinions from fellow developers / maintainers / people that frequently browse the issue tracker on projects.blender.org. The goal is to provide better management and querying of issues via labels on the platform.
As a note, many of these ideas are taken from other open source repos on github, such as Bevy and rust-lang.
I’ve organized these in order from what I believe is the least contentious ideas to the most contentious.
Crashes
Problem: When crashes are discovered, they are labeled as Priority: High
; individual modules are then free to lower this priority if they have a justification. While issues like this are frequently prefixed with Crash
in the title, searching specifically for this string only in the title is not possible and results in false positives.
Proposal: Add a new label Type: Crash
that should be added when initially triaging an issue.
Complexity
Problem: We have no way of labeling the estimated amount of effort that a given To-Do or Bug will take to fix. The closest that we have to this is Meta: Good First Issue
which can be considered the easiest level of difficulty a task can be. Without extensive knowledge and reading of individual issues, it is difficult for someone not directly connected to the area of development to get a basic understanding of a task’s complexity, which has the following issues:
- New contributors who are looking for a non-trivial amount of work to do have no easy way to look at issues that they may be interested in.
- Module members looking to plan upcoming work need to either remember or frequently rescan existing issues to find areas to work on.
- From an outsider’s perspective, it is difficult to gauge how long something may take, even if something is in progress.
Proposal: Add a new set of labels: Effort: Trivial
, Effort: Straightforward
, Effort: Modest
, Effort: Huge
that may be added when making To-Dos, or at any point in an issue’s lifetime.
Interest
Problem: Currently, we have multiple different usages of the Interest
category of labels.
- For every Module label, we have a corresponding Interest label (e.g.
Module: Sculpt, Paint & Texture
,Interest: Sculpt, Paint & Texture
) - For some subareas / shared categories, we have individual areas of interest (e.g.
Interest: Undo
,Interest: USD
)
We currently use the “Module” category of labels to indicate ownership - i.e. who should be the one fixing or looking into an issue. The duplicated “Interest” label for modules is currently used to indicate that a given module may be interested in an area.
When triaging an issue of ambiguous ownership, members need to remember which modules are interested or affected. For a concrete example, if there was a issue with Weight Painting overlays, it is feasible that this would involve the following Interest tags: Sculpt, Paint & Texture
, Animation & Rigging
, Viewport & EEVEE
.
For contributors looking to work on a certain area, having interest labels that more clearly match features from a user point of view makes them easier to find.
Proposal: Slowly phase out module-level interest labels. Introduce more labels underneath the Interest
category to indicate “area of interest”. Triagers then only need to know the area that a given report is affecting, and modules can track or otherwise know to follow certain labels.
Status
Problem: An issue that has been Confirmed
can actually be in various different sub-states. Members may need to do further investigation to figure out what the actual issue is, or an issue may have been investigated previously and only needs a change to be proposed
While in many cases, especially for recent regressions, issues will go from confirmed to resolved fast, when an issue is longer-lasting and has no easy fix, having separation is helpful from a high-level view of the issue queue.
Proposal: Add Needs Investigation
and Ready for Implementation
as labels that indicate at a more granular level what the next step is. This may be added when an issue is confirmed, or at any point while it is still active.