Consider version with the higther number as the latest release

This commit is contained in:
Benjamin Renard 2023-11-29 18:42:48 +01:00
parent 868ee28677
commit dba77147a5
Signed by: bn8
GPG key ID: 3E2E1CE1907115BC

View file

@ -81,18 +81,31 @@ CURRENT = CURRENT.replace("+", "-")
logging.debug("Cleaned current version: %s", CURRENT) logging.debug("Cleaned current version: %s", CURRENT)
LATEST = None LATEST = None
LATEST_INT = None
try: try:
logging.debug("Get releases RSS feed from %s...", options.url) logging.debug("Get releases RSS feed from %s...", options.url)
r = requests.get(options.url, timeout=options.timeout) r = requests.get(options.url, timeout=options.timeout)
logging.debug("Data retreive:\n%s", r.text) logging.debug("Data retreive:\n%s", r.text)
data = xmltodict.parse(r.text) data = xmltodict.parse(r.text)
versions = {}
for item in data["rss"]["channel"]["item"]: for item in data["rss"]["channel"]["item"]:
version = re.sub("^v", "", item["title"]) version = re.sub("^v", "", item["title"])
if not options.include_rc and "-rc" in version: if not options.include_rc and "-rc" in version:
logging.debug("Ignore release candidate %s", version) logging.debug("Ignore release candidate %s", version)
continue continue
version_int = int(re.sub(r"[\.-]", "000", version))
logging.debug("Found version %s (%s)", version, version_int)
if not LATEST_INT or LATEST_INT < version_int:
if LATEST:
logging.debug(
"Version %s considered as newer than %s, override latest version",
version,
LATEST,
)
LATEST = version LATEST = version
break LATEST_INT = version_int
else:
logging.debug("Version %s considered as oldest than %s", version, LATEST)
except Exception: # pylint: disable=broad-except except Exception: # pylint: disable=broad-except
pass pass
logging.debug("Latest version: %s", LATEST) logging.debug("Latest version: %s", LATEST)