diff --git a/pypiserver/__init__.py b/pypiserver/__init__.py index fc30ba9..f808ea3 100644 --- a/pypiserver/__init__.py +++ b/pypiserver/__init__.py @@ -7,7 +7,7 @@ import typing as t from pypiserver.bottle import Bottle from pypiserver.config import Config, RunConfig, strtobool -version = __version__ = "2.0.0dev1" +version = __version__ = "2.0.0dev1aw" __version_info__ = tuple(_re.split("[.-]", __version__)) __updated__ = "2020-10-11 11:23:15" diff --git a/pypiserver/_app.py b/pypiserver/_app.py index dd0acf4..bee47b7 100644 --- a/pypiserver/_app.py +++ b/pypiserver/_app.py @@ -366,15 +366,19 @@ def server_static(filename): @app.route("/:project/json") @auth("list") def json_info(project): - rv = {} - releases = [] - for x in config.backend.find_project_packages(project): - r = {x.version: [{"url": "http://localhost:8080/packages/" + x.relfn_unix}]} - releases.append(r) - rv["releases"] = releases - # todo check if this really that simple - max_version = max([r for r in releases.keys()]) - rv = {"info" : {"version": max_version}} + packages = sorted( + config.backend.find_project_packages(project), + key=lambda x: x.parsed_version, reverse=True + ) + max_version = packages[0].version + releases = {} + req_url = request.url + for x in packages: + releases[x.version] = [{"url": urljoin(req_url, "../../packages/" + x.relfn)}] + rv = { + "info" : {"version": max_version}, + "releases" : releases + } response.content_type = 'application/json' return dumps(rv)