Allow milestone(s) to be associated with a release
Problem to solve
Releases in GitLab are not yet well associated with other data that exists in the single application. A clear starting point that's missing today is associating a milestone with a release. The way many teams use GitLab, ourselves included, is to have a milestone for the release that everything tracks to. Some teams also have 2 or 3 sprints that may make up a release, so we should allow for multi-association.
Release Managers, users who want to see what was included in a release.
In the future, having the milestone will make it easier to automatically generate release notes for a release as well as other potential improvements.
- API: Add a new milestone list that associates a release with zero or more milestones (we would support more than one to support milestones as sprints, for example)
- Even though the MVC for this new feature will only allow one milestone for one release, it was decided to go ahead and implement the long-term architecture.
- UI: For each associated milestone, link from the release home to the milestone home (https://gitlab.com/groups/gitlab-org/-/milestones/20).
- UI: Also link directly to MR and issues search links for each milestone (same as the issue/MR links at the bottom of the above page).
- UI: Link from tags page/other places we show tag to release, if a release is associated.
- There isn't an edit interface added yet (see #26016 (closed)), but the new element needs to be handled and displayed correctly in the UI.
- We display the milestones ordered alphanumerically
- Even though the MVC for this new feature will only allow one milestone for one release, it was decided to go ahead and design the long-term solution.
As a user, I want to know when a milestone is associated to a release, so that I see issues and merge requests included in a release.
|Releases page - no milestones||Updates|
|N/A. If no Milestone is set for a release, the information should not be rendered on screen.|
|Releases page - multiple milestones||Updates|
||Add a reference to
|Milestones detail page||Updates|
|On the side panel (right), add a data entry for the Release linked to the milestone.
Screenshots of actual implementation
Milestone list page
Milestone detail page
Milestone / Release. Change the words displayed, depending on the number qualifying the word. For example:
Milestone 12.1 vs
Milestones 12.2, 12.3. Different languages can have different rules.
- The releases/milestones items displayed inline in the UI should wrap in a new line if there's not enough horizontal space to display it.
Permissions and Security
No additional permissions or security are required. The current users who can update releases should continue to be able to do so, and no changes to visibility are required.
This is a new kind of association, so we need to update both tags documentation and releases documentation to describe this new kind of relationship.
What does success look like, and how can we measure that?
We should measure releases associated with milestones as a usage measure for this feature.
Although this feature is valuable on its own to link to MRs/issues in a given release, the real beauty will come when we start autogenerating release notes based on this content. It makes more sense to measure success of releases once that is available.
Links / references