Skip to content

Commit 2292e57

Browse files
committed
Sort Simple API detail page releases
Assisted By: Claude Opus 4.6
1 parent f168ae8 commit 2292e57

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

pulp_python/app/pypi/views.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from drf_spectacular.utils import extend_schema
2222
from dynaconf import settings
2323
from packaging.utils import canonicalize_name
24+
from packaging.version import Version
2425
from rest_framework.exceptions import NotAcceptable
2526
from rest_framework.renderers import BrowsableAPIRenderer, JSONRenderer, TemplateHTMLRenderer
2627
from rest_framework.response import Response
@@ -404,14 +405,17 @@ def retrieve(self, request, path, package):
404405
if not releases:
405406
return HttpResponseNotFound(f"{normalized} does not exist.")
406407

408+
sorted_releases = sorted(
409+
releases.values(), key=lambda r: (Version(r["version"]), r["filename"])
410+
)
407411
media_type = request.accepted_renderer.media_type
408412
headers = {"X-PyPI-Last-Serial": str(PYPI_SERIAL_CONSTANT)}
409413

410414
if media_type == PYPI_SIMPLE_V1_JSON:
411-
detail_data = write_simple_detail_json(normalized, releases.values())
415+
detail_data = write_simple_detail_json(normalized, sorted_releases)
412416
return Response(detail_data, headers=headers)
413417
else:
414-
detail_data = write_simple_detail(normalized, releases.values())
418+
detail_data = write_simple_detail(normalized, sorted_releases)
415419
kwargs = {"content_type": media_type, "headers": headers}
416420
return HttpResponse(detail_data, **kwargs)
417421

0 commit comments

Comments
 (0)