Sort releases by milestone dates in API
A Release Page can be unwieldy and difficult to navigate if you have hundreds of release tags with release notes. With the implementation of a new sorting component, gone are the days of you having to manually sift through your releases. Rather, you can now quickly sort releases by milestone dates.
Problem to solve
As a user, I want sort releases in the API, so I can quickly reorganize existing releases in the UI.
User experience goal
The user should be able to use the API with GitLab to sort releases.
Allow filtering and sorting by Milestones related to the Project's releases, on fields:
due_date. Where there are multiple Milestones, the
start_date refers to the earliest among all the related Milestones and
due_date the latest.
Allow sorting on attributes from the milestone API
We'll make a new backend endpoint on the server that will return the releases sorted in the order the user selected.
The ordering in the Releases page went completely bogus for my project. A minor version released later than a patch version is at the bottom of the page. All the releases show "released 3 month ago". Not true. The date + time that is displayed there is neither the time of the commit nor the tag or anything else from git. Maybe this is the time when I added the "Release notes" on the Tags page...? But certainly I don't want to have the Releases ordered by what time I added the release notes on the Tags page!
This issue comes from the fact that we assume the date a release was created is the release date of that release. Instead, we should add an editable release date value for a release and sort by that.
For the full sorting functionality proposed in the tech eval, we'll need backend to implement
start_date as date types available from the Release API.
We'll also need an MR that adds an endpoint so that the frontend can request a sort order from the server. The return value of this endpoint should be a list of Releases but in the order specified by the request. If pagination is necessary, we the frontend should be be able to make paginated calls to the backend to receive a sorted list for an individual page.
- Backend MR to add
- Backend MR to make an API endpoint that handles request for a sort order and returns releases sorted in that order, for the frontend. Additionally, this MR should be able to handle paginated requests.
- Backend MR for REST API docs
Yes, this will require an update to the Releases API documentation.
Availability & Testing
What does success look like, and how can we measure that?
What is the type of buyer?
Is this a cross-stage feature?
Links / references
- Frontend implementation issue #221101 (closed)