Related to forgejo/discussions#415
Complements forgejo/forgejo#12001
Document issue tracker workflow #1983
fnetx/issue_workflow into next
AGit
Related to forgejo/discussions#415 Complements forgejo/forgejo#12001
Looks sensible to me!
How would the labels be? I was thinking about classifying by "need" (to know what is the next step):
needs/triage(stage 1)needs/more-information(stage 1)needs/user-research(stage 2)needs/scope-expansion(out-of-scope: closed)needs/re-evaluation(outdated: closed)needs/design(stage 3)needs/pull-request(stage 4)
@ -0,0 +31,4 @@
- **Guidelines for moving ahead:**
- isolated technical issues: try to assist as good as possible, close issue when resolved
- not clear enough: try to ask for more information
- not clear enough and the user research time might want to take a look: Create a stage-2 (research) issue
typo: time/team
@ -0,0 +58,4 @@
- **Goal:** Discuss and specify how a problem should be solved. Can involve UI/UX discussions, but also code architecture or other technical considerations, depending on the type of change.
- **Guidelines for moving ahead:**
- more data is needed to continue the design: create or reopen a stage-2 (research) issue
- favoured solution is found: craete a stage-4 (implementation) issue and document the discussion results, close the design issue
typo: craete
Nice!
I think it would be worth mentioning the situations where stages do not need to be iterated through explicitly. If I remember well, there was a consensus that straightforward bug reports don't need to go through a design phase and can be fixed directly. Similarly, there might be issues where design work is needed, but the outcome of this work is a plan that can be implemented in a straightforward way, so there wouldn't be a need for an "implementation issue": a PR can be opened directly. Overall, I imagine the workflow described here will be followed in full only for a fraction of the problems reported, no?
Also, for this workflow to be actually followed, I think we need a bigger user research team. That's perhaps not for this PR, but we should incentivize more people to join that team and get involved in the work (with some documentation about the logistical process: how do we reach out to users? Can we get some usage stats from Codeberg? where do we find a list of prominent Forgejo instances.) Maybe it would also be worth having some sort of invitation to get involved in that work in this issue_workflow.md page.
@oliverpool the labels are described in forgejo/forgejo#12001.
I think it would be worth mentioning the situations where stages do not need to be iterated through explicitly
Do you have a suggestion on how you'd like to do it?
The "Guidelines for moving ahead" already mention how an issue can be moved from first to last stage, for instance.
Also, for this workflow to be actually followed, I think we need a bigger user research team
The goal is that the workflow is followed by everyone and that there is no "need" for a user research team to deal with the issues. The user research team could then focus on providing input only where necessary, e.g. for specific research issues.
* address review comments * fix linter complaints * shorten some phrases and clarify when issues should be closed * some other minor wording adjustments
Preview ready: https://forgejo.codeberg.page/@docs_pull_1983/docs/next/
https://forgejo.codeberg.page/@docs_pull_1983/docs/next/contributor/issue_workflow/
@ -0,0 +1,106 @@
---
title: 'Welcome to Forgejo'
I just realized I didn't update this. But I'm also not sure how to call the document.
"Issue workflow" seems kinda not descriptive enough, but has the advantage of being short and generic enough to apply to everyone.
"Research and design workflow" is more descriptive, but sounds like only specific people should read it (but it's for everyone!)
"Issue workflow: research and design" could combine both, but it's getting long ...
It really reads well and I see forward in using it. Thanks a lot for your effort! I already see improvements of the reports since we introduced the problem/enhancement workflow. Together with the new issue templates it should have enough nudging now for users to report stage/1-triage issues (instead of enhancements). I have just some questions that aren't clear to me, yet:
- For the stage changes on normal track, all issues of a need are kept open until a PR closes all of them?
- What about issues that are triaged and not considered for continuation (you gave nice sample texts), maybe it is still worth to have labels for them for easier filtering?
- What about the current bug and feature labelling? How would moving from bug/new-report to bug/confirmed be covered by this new workflow?
- Will there be still distinction of bug vs. feature? I find bugs with affects/some and impact/medium really annoying and even more important than features with affects/many and impact/large.
- At which stage to label with the forgejo/ and code/ labels? I guess, at all four stages this is possible?
For the stage changes on normal track, all issues of a need are kept open until a PR closes all of them?
I envision that the raw user problems (triage stage issues) are closed after they have been reviewed. Once the input can be said to have influenced something, it can be closed. However, I suppose that we need to try. They are basically raw input data and could also help to learn about other things. For example, a user complaining about a specific problem might still give some interesting data for an entirely unrelated thing.
Basically, I hope that we'll evolve good tools on how to classify the user reports, and that simply by reading about user problems with more elaboration we get a better understanding of what users are trying to achieve with Forgejo.
What about issues that are triaged and not considered for continuation (you gave nice sample texts), maybe it is still worth to have labels for them for easier filtering?
There are some user research labels and it would be nice to keep classifying them. However, I think that there is probably a lot that can simply be closed. As said above, I think that the efficient analysis will be a iterative process.
Will there be still distinction of bug vs. feature? I find bugs with affects/some and impact/medium really annoying and even more important than features with affects/many and impact/large.
One of the goals described in my talk is that the distinction between bugs and features should be skipped, simply because it is not clear. Users are facing problems. Some of them are critical, some less so. Some are easy to implement, others are not. It's more complex than bug vs feature, and forcing issues into such a classification is a bad idea IMHO.
Do you have examples about such a bug that is more important than a feature? I think the only thing that is added on top of that is implementation complexity, and it is natural that more complex things are less likely to be picked up than trivial ones.
What about the current bug and feature labelling? How would moving from bug/new-report to bug/confirmed be covered by this new workflow?
If the workflow works out, I would archive the existing labels and try to convert as much as possible from the old ones, similar to how there are only a few issues with the original "bug" label.
I hope that we can get rid of the bug template and consequently also of the issues that still have their labels. So instead of moving from bug/new-report to bug/confirmed, the issues would move from stage/1-triage to stage/4-implementation.
At which stage to label with the forgejo/ and code/ labels? I guess, at all four stages this is possible?
Yes, basically at every stage. This will also be subject to iteration to see which labels are useful and which are not. For example, we currently have the forgejo/ui label added to a lot of stuff, including things that require backend fixes. I don't know how useful the granular classification is. I find it useful to cluster for two reasons:
- area of responsibility, e.g. "security features" so the respective team can filter for them
- related things, so that you can take a look at other issues (e.g. with project management) and can plan them accordingly
The latter is mostly achieved with the user research labels. The former is relevant to all Forgejo contributors and it probably makes sense to revisit the labels we have and how they are added from time to time, to see if everyone is happy with the current classification.
@fnetX wrote in #1983 (comment):
I think it would be worth mentioning the situations where stages do not need to be iterated through explicitly
Do you have a suggestion on how you'd like to do it?
Maybe the text you added about using the same issue and changing the labels is enough (I guess it makes it obvious that you can skip also going through some of the labels).
Thanks for your detailed answer.
@fnetX wrote in #1983 (comment):
For the stage changes on normal track, all issues of a need are kept open until a PR closes all of them?
I envision that the raw user problems (triage stage issues) are closed after they have been reviewed. Once the input can be said to have influenced something, it can be closed.
Related, what I was worrying about: forgejo/forgejo#10497 didn't get closed after three months. Not a big deal, but could become messy at the same time ;) Let's see how it evolves.
Do you have examples about such a bug that is more important than a feature?
E.g., I think of 404s in the UI. Of course, the impact is not huge. But if you encounter them, they are annoying. I find personally the fixes for them more important then new features currently. They potentially affect only few people (e.g., people trying to do an action on archived repos, see forgejo/forgejo#12773). The bug/confirmed gives still some importance to them. In general this applies to many UI issues.
Thinking of your new labels, maybe indeed I'd reclassify quite some impact/small and impact/medium issues to impact/high, because till now, they included the requirement on number of affected people. Without, a bug that affects only one person can still get the impact/high label.
7d17336009
3d15eedc19
@ -0,0 +44,4 @@
### Stage 2: Research
- **Who can create:** Forgejo maintainers and contributors.
Is "maintainers" intended to be "mergers"? I don't know who this is referring to otherwise, and why it is separate from contributors.
Hmm ... I think the classification I wanted to make is between existing contributors and interested new ones. For example, I imagined that more people can move through the process (research / design), but that the final "this is ready for implementation" is done by a smaller team. However, we don't really have a structure that fits well. The contributors team is very large and lax, restricting to mergers would create a bottleneck.
I'll push a change, maybe that is better?
Sure, that's clearer to me. 👍
It shouldn't be too strict, but ideally, only 'trusted' people create the final 'this is ready for implementation' stage
@ -0,0 +69,4 @@
### Stage 4: Implementation
- **Who can create:** Members of at least one elected Forgejo team.
Although maintainers is maybe too unspecific, I think that now this is too restrictive. Not all advanced Forgejo contributors are formally in an elected team, e.g., aahlenst. Maybe a wording like "experienced" or "advanced" Forgejo contributors? Or: just Forgejo developers?
I think that you raise a good point because there are reasonable times when a contributor can identify that an issue is non-controversial and ready for implementation, particularly in bug fixes. But wording like "experienced" or "advanced" is pretty vague, and that would leaving people unsure if they qualify, and possibly unlikely to perform this kind of labelling because of that uncertainty.
Because I think we should tend towards trusting people's judgment, and tend towards more people doing more work with fewer bottlenecks... if it was explained in detail it would be something like: "Forgejo contributors who judge that an issue is ready for this stage, deferring judgment to related team members if they have reason to doubt." But I'm not sure that's a very succinct or clear explanation either. 🤔
"elected" is also a bit of a strange word to use here, since that doesn't quite match the team membership process, which lacks an election. Perhaps clearer here would just be to enumerate specific teams in the governance do that would be relevant to making these decisions (if unclear), which could be Accessibility, UI, Helm, DevOps, Mergers, Localization, Releases, Security... maybe that's it?
I do not want such governance questions to block the workflow changes itself. Maybe I'll reword to "Advanced" or similar.
Maybe "Members of the Contributors team" would be enough here, though.
"Members of the Contributors team" is fine with me. We can have a future discussion based upon real-world things that have happened, if necessary.
@fnetX to make the CI running again, please rebase to/merge next.
44cf625bc8
to 9e340fd823
Also, please note that DISCUSSIONS.md needs some updates:
title: Bugs, features and discussions
license: 'CC-BY-SA-4.0'
---
The [Forgejo issue tracker](https://codeberg.org/forgejo/forgejo/issues) is where **bugs** should be reported and **features** requested.
@ -10,3 +10,3 @@
- For everyone involved
- [Code of Conduct](./coc/)
- [Bugs, enhancement ideas and development roadmap](https://codeberg.org/forgejo/forgejo/issues)
- [Issue, research, design and implementation workflow](./issue_workflow/)
I think this caption should be aligned a little bit with the title from issue_workflow.md.
Maybe something like:
Issue tracker: reporting problems, research, design and implementation workflow
Although implementation should probably be removed because the workflow does not cover the actual implementation/development part.
you are right. The workflow to implementation basically, but it can be stripped.
@ -0,0 +25,4 @@
Issue tracking is separated into 4 stages.
Issues can be "converted" between stages:
What should happen with the description - which has a standard format, based on the corresponding template - when an issue is "converted" by updating the stage/ label?
I already find it awkward to open issues labeled as enhancement/feature and to find out that they were filled in using the problem template.
My idea was that for simple cases, there is no need to update the description, because it is clear enough to anyone visiting it.
For complex cases, I envision to create new issues so that the previous discussion can be summarized and the developer picking up a task does not need to read a backlog of year-long discussions from user's explaining their problem to people arguing about the design.
I'll try to spell this out.
@ -0,0 +27,4 @@
Issues can be "converted" between stages:
- by updating the label: Use to fast-track simple and obvious cases. Keep in mind that reading long discussions can be exhausted.
exhausted → exhausting
@ -0,0 +42,4 @@
- probably out of scope (e.g. for needs that likely don't align to our user base): close the issue
- the user report is outdated (e.g. because Forgejo advanced in this area): close the issue, optionally ask for re-evaluation
- problem is well defined, but finding a solution is not trivial: convert to stage-3 (design)
- problem is well defined and a solution can be implemented ("bugs"): convert to stage-4/implementation
stage-4/implementation → stage-4 (implementation) (for consistency)
I'm converting to the actual name of the labels
@ -0,0 +49,4 @@
- **Who can create:** Forgejo contributors.
- **Responsible for these issues:** Forgejo contributors, but in particular the user research team.
- **Goal:** Research about user needs or other requirements is conducted. Examples where this can be useful:
- How do users expect this to work? How do they configure the software? How do they use it?
thinking out loud:
Maybe expect it to work would be better?!
If so, How is this solved should be probably also updated.
no real opinion here, updating ...
@ -0,0 +53,4 @@
- Which requirements do we need to address? Are there legal ones or standards to consider?
- How is this solved in other software? Do users expect it to work similarly? What can we learn from there?
- **Guidelines for moving ahead:**
- data suggests this is not as important as other needs: close research and triage issues
For consistency, maybe this should be close research and stage-1 (triaging) issues (or simply related issues).
also changing to label names
@ -0,0 +54,4 @@
- How is this solved in other software? Do users expect it to work similarly? What can we learn from there?
- **Guidelines for moving ahead:**
- data suggests this is not as important as other needs: close research and triage issues
- more data is needed: escalate to user research team
I find this guideline a little bit strange or not clear, taking into account that responsible for these issues is in particular the user research team.
please check if this is better ...
since I hope that everyone participates in this stage, I imagined people can ping the user research team for cases where they need help
@ -0,0 +65,4 @@
- **Goal:** Discuss and specify how a problem should be solved. Can involve UI/UX discussions, but also code architecture or other technical considerations, depending on the type of change.
- **Guidelines for moving ahead:**
- more data is needed to continue the design: create or reopen a stage-2 (research) issue
- favoured solution is found: convert to stage-4 (implementation) and document the results
(sort of) thinking out loud:
At a first read I asked myself what results and where should be documented; after reading the goal from 'Stage 4: Implementation' - Document changes that need to be implemented. [...] - my questions were somehow answered but in the same time now I think that the and document the results part is kind of included in convert to stage-4 (implementation).
@ -0,0 +82,4 @@
- good design makes a software easier and more fun to use, but the capacity of the user research team is limited
- the issue tracker is a valuable source of information about user problems
- this information needs to be structured and analyzed
- often, a code change is reviewed for technical detail and only in the end, someone considers if the changed behaviour is actually desired
Some US/UK consistency issue:
| US | UK |
|---|---|
| analyzed | analysed |
| behavior | behaviour |
I don't want to start again the discussion about American English vs. British English, but I think we should either keep analyzed and change behaviour to behavior or keep behaviour and change analyzed to analysed.
@ -0,0 +101,4 @@
Outdated problems (e.g. when Forgejo changed and the user experience is likely different anyway):
> Thank you for describing your problem. Unfortunately, we did not find the capacity to consider all of your input. However, Forgejo has changed significantly since the creation of your report, and I believe the situation looks different now.
> We'll close this issue, but invite you to report back with your current experiences of using Forgejo.
Small consistency issue: We'll close while below is used I am closing.
The next snippets don't really need to be consistent. Ideally, people tune them for their own style so they look more personal ...
9e340fd823
a95a1b0d92
@floss4good
a95a1b0d92 are the changes over the last version. I'll look at the last open threads ASAP.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Archived
Archived
Archived
Archived
Archived
Archived
Archived
Archived
Archived
Archived
Archived
No due date set.
No dependencies set.
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?