|
|
|
@ -270,7 +270,7 @@ class ReleaseVersion:
|
|
|
|
|
NEW_KEY = "versioncheck:new"
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
|
self.local_version = self._parse_version(settings.TA_VERSION)
|
|
|
|
|
self.local_version = settings.TA_VERSION
|
|
|
|
|
self.is_unstable = settings.TA_VERSION.endswith("-unstable")
|
|
|
|
|
self.remote_version = False
|
|
|
|
|
self.is_breaking = False
|
|
|
|
@ -298,16 +298,17 @@ class ReleaseVersion:
|
|
|
|
|
"""read version from remote"""
|
|
|
|
|
sleep(randint(0, 60))
|
|
|
|
|
self.response = requests.get(self.REMOTE_URL, timeout=20).json()
|
|
|
|
|
remote_version_str = self.response["release_version"]
|
|
|
|
|
self.remote_version = self._parse_version(remote_version_str)
|
|
|
|
|
self.remote_version = self.response["release_version"]
|
|
|
|
|
self.is_breaking = self.response["breaking_changes"]
|
|
|
|
|
|
|
|
|
|
def _has_update(self):
|
|
|
|
|
"""check if there is an update"""
|
|
|
|
|
if self.remote_version > self.local_version:
|
|
|
|
|
remote_parsed = self._parse_version(self.remote_version)
|
|
|
|
|
local_parsed = self._parse_version(self.local_version)
|
|
|
|
|
if remote_parsed > local_parsed:
|
|
|
|
|
return self.remote_version
|
|
|
|
|
|
|
|
|
|
if self.is_unstable and self.local_version == self.remote_version:
|
|
|
|
|
if self.is_unstable and local_parsed == remote_parsed:
|
|
|
|
|
return self.remote_version
|
|
|
|
|
|
|
|
|
|
return False
|
|
|
|
@ -324,7 +325,10 @@ class ReleaseVersion:
|
|
|
|
|
if not message:
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
if self.local_version >= self._parse_version(message.get("version")):
|
|
|
|
|
local_parsed = self._parse_version(self.local_version)
|
|
|
|
|
message_parsed = self._parse_version(message.get("version"))
|
|
|
|
|
|
|
|
|
|
if local_parsed >= message_parsed:
|
|
|
|
|
RedisArchivist().del_message(self.NEW_KEY)
|
|
|
|
|
return settings.TA_VERSION
|
|
|
|
|
|
|
|
|
@ -337,3 +341,12 @@ class ReleaseVersion:
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
return message
|
|
|
|
|
|
|
|
|
|
def clear_fail(self):
|
|
|
|
|
"""clear key, catch previous error in v0.4.5"""
|
|
|
|
|
message = self.get_update()
|
|
|
|
|
if not message:
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if isinstance(message.get("version"), list):
|
|
|
|
|
RedisArchivist().del_message(self.NEW_KEY)
|
|
|
|
|