diff --git a/master.py b/master.py index e8f0dc4..444dd0e 100644 --- a/master.py +++ b/master.py @@ -16,7 +16,7 @@ from queue import Empty import yaml from humanfriendly import format_timespan -from packaging import version +from semantic_version import Version regex_pkgver = re.compile(r"^_?pkgver\s*=\s*(.+)$", re.MULTILINE) regex_pkgrel = re.compile(r"^pkgrel\s*=\s*(.+)$", re.MULTILINE) @@ -231,9 +231,9 @@ def parse_pkgbuild(pkgbuild_file): pkgrel = regex_pkgrel.findall(pkgbuild_str) if not pkgver or not pkgrel: logging.warning("[%s] Failed to parse pkgbuild", pkgbuild_file.split("/")[-4]) - return version.parse("") + return Version.parse("") - return version.parse("{}-{}".format(pkgver[0], pkgrel[0])) + return Version.parse("{}-{}".format(pkgver[0], pkgrel[0])) def increase_pkgrel(pkgbuild_file): @@ -249,7 +249,7 @@ def increase_pkgrel(pkgbuild_file): def parse_repo(name, repo): ver_split = find_all_files_for_pkg(name, repo)[0].split("-") - return version.parse(ver_split[-3] + "-" + ver_split[-2]) + return Version.parse(ver_split[-3] + "-" + ver_split[-2]) def sync_marchs_with_config(): @@ -309,17 +309,21 @@ def fill_queue(): logging.info("[%s/%s] Skipped due to failing build", repo, name) continue - if package_exists(name, repo): - logging.debug("[SEMVER] Comparing %s=%s - %s=%s", name, parse_repo(name, repo), name, - parse_pkgbuild(pkgb)) + try: + if package_exists(name, repo): + logging.debug("[SEMVER] Comparing %s=%s - %s=%s", name, parse_repo(name, repo), name, + parse_pkgbuild(pkgb)) - if not package_exists(name, repo): - q.put((pkgb, repo)) - logging.info("[%s/%s] Build queued (package not build yet)", repo, name) - elif parse_repo(name, repo) < parse_pkgbuild(pkgb): - q.put((pkgb, repo)) - logging.info("[%s/%s] Build queued (new version available %s < %s)", repo, name, - parse_repo(name, repo), parse_pkgbuild(pkgb)) + if not package_exists(name, repo): + q.put((pkgb, repo)) + logging.info("[%s/%s] Build queued (package not build yet)", repo, name) + elif parse_repo(name, repo) < parse_pkgbuild(pkgb): + q.put((pkgb, repo)) + logging.info("[%s/%s] Build queued (new version available %s < %s)", repo, name, + parse_repo(name, repo), parse_pkgbuild(pkgb)) + except ValueError as e: + logging.warning("[%s] Failure parsing version: %s", name, e) + continue logging.info("Build queue size: %s", q.qsize()) @@ -363,7 +367,7 @@ if __name__ == '__main__': q.task_done() q.join() - logging.info("Cleared Queue, clearing upstream repos...") + logging.info("Cleared Queue, cleaning upstream repos...") update_svn2git() logging.info("Cleanup done, refill queue")