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

authored by

Martin Weinelt and committed by
GitHub
a5345967 d5ffbd6c

+9 -1
+9 -1
pkgs/by-name/up/update-python-libraries/update-python-libraries.py
··· 283 releases = list(filter(lambda x: not x["prerelease"], all_releases)) 284 285 if len(releases) == 0: 286 - raise ValueError(f"{homepage} does not contain any stable releases") 287 288 versions = map(lambda x: strip_prefix(x["tag_name"]), releases) 289 version = _determine_latest_version(current_version, target, versions) ··· 457 successful_fetch = True 458 break 459 except ValueError: 460 continue 461 462 if not successful_fetch:
··· 283 releases = list(filter(lambda x: not x["prerelease"], all_releases)) 284 285 if len(releases) == 0: 286 + logging.warning(f"{homepage} does not contain any stable releases, looking for tags instead...") 287 + url = f"https://api.github.com/repos/{owner}/{repo}/tags" 288 + all_tags = _fetch_github(url) 289 + # Releases are used with a couple of fields that tags possess as well. We will fake these releases. 290 + releases = [{'tag_name': tag['name'], 'tarball_url': tag['tarball_url']} for tag in all_tags] 291 + 292 + if len(releases) == 0: 293 + raise ValueError(f"{homepage} does not contain any stable releases neither tags, stopping now.") 294 295 versions = map(lambda x: strip_prefix(x["tag_name"]), releases) 296 version = _determine_latest_version(current_version, target, versions) ··· 464 successful_fetch = True 465 break 466 except ValueError: 467 + logging.exception(f"Failed to fetch releases for {pname}") 468 continue 469 470 if not successful_fetch: