Issue board milestone lists design
- Similar to #5784 (closed), but for milestones.
- This is a solution to the implementing the Agile workflow of having an issue (story) backlog, and being able to manage/groom that backlog, and easily move issues (stories) between different milestones (sprints/iterations). Also you would be able to prioritize them within a sprint easily too.
- Note that in this use case, the "milestones" are indeed sprints/iterations in Agile. But in the future, we want to extend milestones to also mean releases (gitlab-org&69). I.e. in GitLab currently we don't have a distinction between release vs iteration natively.
We add a third tab to the
Add list dropdown for Milestones where users can choose a milestone to create a list:
|Adding a milestone list||Milestone list|
The label of the new tab will be
Milestone. The labels of the other two tabs will need to be modified: 'Label list' and 'Assignee list'.
The help text for the Milestone tab will be:
Milestone lists show all issues from the selected milestone
The width of the dropdown will be increased to
312px to accommodate for the third tab.
Milestone lists will display the milestone's name next to the milestone icon,
For project-level boards, the
Add list dropdown will show all milestones from that project as well as its direct parent.
For group-level boards, the
Add list dropdown will show all milestones from that group, as well as its downnesting groups and projects.
Since an issue can only have one milestone, moving a card to a milestone list will remove the previous value and replace it with the value of the list.
These are the attribute changes that will happen when moving issues between a milestone list and different one:
To an from the backlog
- Milestone -> Backlog: Remove the milestone
- Backlog -> Milestone: Assign the milestone
To and from a label list
- Milestone -> Label: Add the label
- Label -> Milestone: Assign the milestone
To and from an assignee list
- Milestone -> Assignee: Assign the user
- Assignee -> Milestone: Assign the milestone
To and from a milestone list
- Milestone -> Milestone: Remove the first milestone and assign the second one
To and from the Closed list
- Milestone -> Closed: Close the issue
- Closed -> Milestone: Open and assign the milestone