Packages list page: display the most recent pipeline
🔥 Problem
In the page that lists the available packages, we show a pipeline if the package was built by one.
The problem is that, the package (name+version) can accept duplicates and so multiple pipelines could have built it. The index page is showing the oldest pipeline. That's a bit unexpected as the newest pipeline
Example: https://staging.gitlab.com/10io/pkgs_build_by_ci/-/packages
🚒 Solution
- Update the frontend GraphQL query so that
pipelines(first: 1)
is queried and notpipelines(last: 1)
. - (Bonus) It seems that the field
pipeline
of the Rest API has the same behavior.- Updating it could be a breaking change, so I'll leave it as a Bonus point.
Implementation guide
-
frontend Change
last
tofirst
https://gitlab.com/gitlab-org/gitlab/-/blob/e66e89bf4932e6f666a73b5d3ef3c3ca73e3d83d/app/assets/javascripts/packages_and_registries/package_registry/graphql/fragments/package_data.fragment.graphql#L15 -
rails
- Change the method
original_build_info
to return the lastbuild_info
instead of the first https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/models/packages/package.rb#L293 After the change above is done, the method needs to be renamed to something likelast_build_info
since it won't return original build info anymore.
- Change the method
Edited by Dzmitry (Dima) Meshcharakou