update-python-libraries: support GitHub repositories with tag releases only (#435695)

Changed files
+9 -1
pkgs
by-name
up
update-python-libraries
+9 -1
pkgs/by-name/up/update-python-libraries/update-python-libraries.py
···
releases = list(filter(lambda x: not x["prerelease"], all_releases))
if len(releases) == 0:
-
raise ValueError(f"{homepage} does not contain any stable releases")
+
logging.warning(f"{homepage} does not contain any stable releases, looking for tags instead...")
+
url = f"https://api.github.com/repos/{owner}/{repo}/tags"
+
all_tags = _fetch_github(url)
+
# Releases are used with a couple of fields that tags possess as well. We will fake these releases.
+
releases = [{'tag_name': tag['name'], 'tarball_url': tag['tarball_url']} for tag in all_tags]
+
+
if len(releases) == 0:
+
raise ValueError(f"{homepage} does not contain any stable releases neither tags, stopping now.")
versions = map(lambda x: strip_prefix(x["tag_name"]), releases)
version = _determine_latest_version(current_version, target, versions)
···
successful_fetch = True
break
except ValueError:
+
logging.exception(f"Failed to fetch releases for {pname}")
continue
if not successful_fetch: