Hello, Community!
We haven't had clear guidelines on when and how to create suitable tasks in our Phorge development portal for a long time. As the community grows, we need such guidelines more and more to ensure that tasks get resolved. We are also changing our policy of never closing tasks for inactivity, although we will still close them only under particular and limited circumstances.
Our task tracker has always been full of open tasks. One of the things we find appalling is open-source projects that try to keep the number of open tasks low at all costs and automatically close all tasks if there is no activity in a certain period. I've seen projects where that period was as short as two weeks. The effect is that if someone puts a lot of effort and time into creating a detailed reproducing procedure for a tricky bug and diagnosing its cause but project maintainers neglect to look at it in time, the system closes the task and pretends that the problem never existed — that is highly disrespectful towards community members who are doing their best to improve the project.
Early on, we did not close any task until it was resolved. In the early days, long-standing tasks were widespread because many features were impossible to implement in the legacy code, and that code had to be rewritten entirely first. We still close tasks from the low hundreds now that almost all of the legacy code is gone, and the path to those improvements is finally unblocked.
However, it's also essential to keep task tracker entries actionable. There are two main ways people use the task tracker. The main question for the maintainers' team and community contributors is, "What can I work on now?". For end users, it's usually either "Does anyone have the same problem?" or "Does anyone also want the feature I want?".
We developed a set of guidelines that will hopefully make it easier to answer those questions.
You must create a task before you start working on a feature. Yes, even if it's a tiny feature — we use the task tracker to generate release notes, so everything must be reflected there.
You must include at least the following:
You should include the following information:
It's okay if you cannot provide some of that information, but if you can, it makes the work of developers considerably more straightforward, so try to research to answer those questions.
When you create a bug, the most important thing is that it should be possible to tell if it's fixed.
You should include the following information:
If you aren't sure what the correct behavior is and if what you see is really a bug, or if you don't have a reproducing procedure that reliably triggers it, please create a post on the forum or ask in the chat first — or, if you have a subscription, create a support ticket. Our team and community members can help you identify and work around the bug and create an actionable and testable bug report.
We recently added a new task status: "Needs reporter action." We will assign that status to the following:
This is what will happen when a task is set to "Needs reporter action":
We will not auto-close tasks with any other status or close tasks for the lack of maintainer activity!
You can find a permanent version of these guidelines in the development portal itself and in the documentation. We hope these guidelines help keep the task tracker clean and actionable.
If you have any ideas on how to improve them, tell us!
Thank you for your participation!