]> source.dussan.org Git - gitea.git/commitdiff
Sort Python package descriptors by version to mimic PyPI format (#23550)
authorSamuel FORESTIER <HorlogeSkynet@users.noreply.github.com>
Sun, 19 Mar 2023 14:19:37 +0000 (14:19 +0000)
committerGitHub <noreply@github.com>
Sun, 19 Mar 2023 14:19:37 +0000 (15:19 +0100)
---

Hi, very naive and **untested** first time ever Go code, feel free to
reject/edit this as needed.
(PyPI actually performs "naive" string comparison too)

---------

Co-authored-by: Lauris BH <lauris@nix.lv>
routers/api/packages/pypi/pypi.go

index 609c63dc64f5abe23b7ca36d450d9cea9c13a234..2f71801a8f63c4e3d3d623200eb0ff47c5d4e59c 100644 (file)
@@ -8,6 +8,7 @@ import (
        "io"
        "net/http"
        "regexp"
+       "sort"
        "strings"
 
        packages_model "code.gitea.io/gitea/models/packages"
@@ -62,6 +63,11 @@ func PackageMetadata(ctx *context.Context) {
                return
        }
 
+       // sort package descriptors by version to mimic PyPI format
+       sort.Slice(pds, func(i, j int) bool {
+               return strings.Compare(pds[i].Version.Version, pds[j].Version.Version) < 0
+       })
+
        ctx.Data["RegistryURL"] = setting.AppURL + "api/packages/" + ctx.Package.Owner.Name + "/pypi"
        ctx.Data["PackageDescriptor"] = pds[0]
        ctx.Data["PackageDescriptors"] = pds