1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00

Merge pull request #2766 from dstufft/better-version-check

Only warn on final releases with different base versions
This commit is contained in:
Donald Stufft 2015-05-09 13:57:20 -04:00
commit 695e6925d7
2 changed files with 13 additions and 5 deletions

View file

@ -7,7 +7,7 @@ import os.path
import sys
from pip._vendor import lockfile
from pip._vendor import pkg_resources
from pip._vendor.packaging import version as packaging_version
from pip.compat import total_seconds
from pip.index import PyPI
@ -122,15 +122,23 @@ def pip_version_check(session):
headers={"Accept": "application/json"},
)
resp.raise_for_status()
pypi_version = resp.json()["info"]["version"]
pypi_version = [
v for v in sorted(
list(resp.json()["releases"]),
key=packaging_version.parse,
)
if not packaging_version.parse(v).is_prerelease
][-1]
# save that we've performed a check
state.save(pypi_version, current_time)
pip_version = pkg_resources.parse_version(pip.__version__)
pip_version = packaging_version.parse(pip.__version__)
remote_version = packaging_version.parse(pypi_version)
# Determine if our pypi_version is older
if pip_version < pkg_resources.parse_version(pypi_version):
if (pip_version < remote_version and
pip_version.base_version != remote_version.base_version):
logger.warning(
"You are using pip version %s, however version %s is "
"available.\nYou should consider upgrading via the "

View file

@ -26,7 +26,7 @@ def test_pip_version_check(monkeypatch, stored_time, newver, check, warn):
resp = pretend.stub(
raise_for_status=pretend.call_recorder(lambda: None),
json=pretend.call_recorder(lambda: {"info": {"version": newver}}),
json=pretend.call_recorder(lambda: {"releases": {newver: {}}}),
)
session = pretend.stub(
get=pretend.call_recorder(lambda u, headers=None: resp),